次の方法で共有


頂点シェーダ

頂点シェーダ

Microsoft® DirectX® 8.x より前では、Microsoft Direct3D® は固定機能パイプラインを使って、3D ジオメトリをレンダリングしたスクリーン ピクセルに変換していた。ユーザーは、Direct3D によるトランスフォーム、ライティング、およびピクセルのレンダリングの方法を制御するパイプライン属性を設定していた。コンパイル時に宣言する固定機能頂点フォーマットによって入力頂点フォーマットは決まっていた。定義を終了した後、実行時にパイプラインの変更をユーザーが制御することはほとんどできなかった。

プログラマブル シェーダを使うと、トランスフォーム、ライティング、レンダリングの機能を実行時に修正することが可能になり、グラフィック パイプラインに新しい次元が追加される。シェーダは実行時に宣言されるが、ユーザーはこのときに、アクティブにするシェーダを変更したり、ストリーム データを使ってシェーダ データを動的に制御することができる。プログラマブル シェーダを使えば、ピクセルのレンダリング方法に新しいレベルの動的な柔軟性が生まれる。

頂点シェーダ ファイルには、頂点シェーダ命令が含まれている。頂点シェーダは、頂点色や、頂点へのテクスチャの適用方法を制御できる。頂点シェーダ命令を使うことによって、ライティングを追加できる。シェーダ命令ファイルの内容は ASCII テキストであり、読むことができる。また、ある意味でアセンブリ言語に似ている。頂点シェーダは、DrawPrimitive または DrawIndexedPrimitive 呼び出しの後に起動される。SetVertexShader を使って新しいシェーダ ファイルを指定するか、ストリーム データ入力を使って ASCII テキストのシェーダ ファイル内の命令を変更することによって、シェーダを動的に切り替えることができる。「頂点シェーダ 1_1」にシェーダ命令の全一覧がある。

  • 頂点シェーダの作成 - このセクションには、頂点シェーダを使ってオブジェクト頂点に一定の色を適用するサンプル コードがある。この例には、使っているメソッドの詳細な説明がある。
  • 頂点色 - 追加の例として、テクスチャを追加して頂点色とテクスチャをブレンドするサンプル コードを示す。
  • テクスチャリング - 追加の例として、テクスチャを追加して頂点色とテクスチャをブレンドするサンプル コードを示す。
  • ライティングを使ったテクスチャ マップ - 追加の例として、テクスチャを追加して頂点色とテクスチャをブレンドするサンプル コードを示す。
  • 頂点シェーダと頂点宣言の分離 - 頂点シェーダ宣言が頂点宣言から独立した。このセクションでは、固定機能パイプラインでの宣言と頂点シェーダ パイプラインでの宣言をマッピングする方法の詳細を示す。

命令セットは急速に発展する。問題を避けるための命令順序の詳細については、ハードウェア メーカーの Web サイトを参照すること。あるいは、上位レベル シェーダ言語を使えば、Direct3D エクステンション (D3DX) によって効率的にコンパイルされたシェーダ命令が得られる。