[[cg:start|CG用語集トップ]] > [[cg:systems:start|第9章 システム・応用]] ====== 頂点シェーダ ====== ===== 概要 ===== 頂点シェーダは、[[cg:systems:graphics_processing_unit|GPU]]上で頂点ごとに実行されるプログラムである。3Dモデルの各頂点に対して、座標変換や法線・UV・色などの属性の受け渡しを行う。頂点シェーダは、形状を構成する部品である頂点そのものではなく、[[cg:systems:vertex_processing|頂点処理]]を実行するためのプログラムである点が重要である。 ===== 詳しい説明 ===== 頂点シェーダの代表的な役割は、モデルの頂点座標を画面表示に必要な座標へ変換することである。たとえば、モデル内の座標をワールド空間、カメラ空間、投影後の空間へ変換し、次の描画工程へ渡す。また、法線、UV座標、頂点カラーなどを後続処理に渡すこともある。頂点シェーダの出力は、そのまま画面の画素色になるわけではない。出力された頂点情報は[[cg:systems:rasterization_processing|ラスタ化処理]]を通り、[[cg:systems:pixel_shader|ピクセルシェーダ]]や[[cg:systems:fragment_processing|フラグメント処理]]へ進む。 ===== CG制作との関係 ===== CG制作では、頂点シェーダを直接書かない場合でも、モデルの変形、スキニング、波打つ布や揺れる草などの表現が頂点処理として実行されることがある。制作した形状やUV、法線が正しくないと、シェーダでの表示結果にも影響する。 ===== ゲーム開発との関係 ===== ゲーム開発では、頂点シェーダはリアルタイム描画の基本要素である。DirectXやOpenGLなどを使う場合、頂点バッファの情報と変換行列を入力し、頂点シェーダで座標や属性を処理する。処理が誤ると、モデルが表示されない、位置がずれる、ライティングが不自然になるなどの問題が起こる。 ===== 制作・実装での例 ===== 実装では、頂点シェーダにワールド行列、ビュー行列、射影行列などを渡し、頂点座標を変換する。さらに、UVや法線をピクセルシェーダ側へ渡すことで、テクスチャやライティングの計算につなげる。 ===== 検定対策ポイント ===== 頂点シェーダは、頂点単位で実行されるGPUプログラムである。検定では、ピクセル単位で色を計算するピクセルシェーダ、画素化の処理であるラスタ化処理、形状要素としての頂点と混同しないことが重要である。 ===== 関連用語 ===== * [[cg:systems:vertex_processing|頂点処理]] * [[cg:systems:pixel_shader|ピクセルシェーダ]] * [[cg:systems:fragment_processing|フラグメント処理]] * [[cg:systems:rasterization_processing|ラスタ化処理]] * [[cg:systems:graphics_processing_unit|GPU]] ===== タグ ===== * CGエンジニア検定 * 第9章 * システム ---- [[cg:systems:start|← 第9章 システム・応用 の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]