頂点シェーダ 3_0
頂点シェーダ 3_0
プログラマブルな頂点シェーダは、頂点データを処理する一連の命令から成る。レジスタは、ALU との間でデータをやり取りする。追加のコントロールを適用すると、命令、結果、または書き込むデータを変更できる。
- 利用可能な命令の一覧を「命令 - vs_3_0」に示す。
- 頂点シェーダ演算論理単位 (ALU) で使われる各種レジスタの一覧を、「レジスタ - vs_3_0」に示す。
- 命令修飾子は、命令の動作を変更するために使う。
- マスキングにより、書き込む出力レジスタの成分が決まる。
- 入力修飾子により、命令を実行する前に入力レジスタ データが変更される。
- 入れ換え (頂点シェーダ) により、読み取り、コピー、または書き込みを実行するレジスタ成分に対する追加の制御を設定できる。
新機能
以下のような新機能がある。
レジスタのインデックス化
以前のシェーダ モデルでは、定数レジスタ バンクのみをインデックス化できた。このモデルでは、ループ カウンタ レジスタ (aL) を使って次のレジスタ バンクをインデックス化できる。
- 入力レジスタ (Vn)
- oTn (oTn)
頂点テクスチャ
このシェーダ モデルは、texldl を使った頂点シェーダによるテクスチャ ルックアップをサポートする。頂点エンジンには 4 つのテクスチャ サンプラ ステージ (ピクセル エンジンのディスプレースメント マップ サンプラとテクスチャ サンプラとは異なる) があり、これらのステージに設定されたテクスチャのサンプリングに使える。「頂点テクスチャ」を参照すること。
頂点ストリームの頻度
この機能により、頂点ごとに 1 回ではないレートで入力レジスタのサブセットを初期化できる。「頂点ストリームの頻度」を参照すること。
シェーダ出力
動的な分岐が実行されることがあるため、頂点ごとの出力が異なる可能性がある。動的な分岐はサポートされない。動的な分岐を実行するシェーダは、ハードウェアが異なると予想不可能な結果が生じる。vs_2_0 と同じように、シェーダの出力は動的フロー制御によって変化することがある。