次の方法で共有


入力レジスタ

頂点シェーダー入力レジスタです。

頂点シェーダーが実行される前に、(1 つ以上の入力頂点ストリームを使用して) 各頂点からデータが頂点入力レジスタにロードされます。入力レジスタは、4 つの成分からなる浮動小数点値ベクトル 16 個 (v0 から v15 で指定) で構成されます。これらのレジスターは読み取り専用です。入力レジスタは、頂点の宣言を通じて頂点データにバインドされます。

次のレジスタ プロパティにより、レジスタの動作を制御します。

プロパティ 説明
名前 v[n] - n はオプションのレジスタ番号です。省略した場合は、デフォルト値の 0 が使用されます。
v0 ~ v15 の最大 16 個のレジスタです。
I/O 許可 読み取り専用です。API またはシェーダー内からこのレジスタに書き込むことはできません。
読み取りポート 1. 1 つの命令内でレジスタを読み取ることができる回数です。以下の説明を参照してください。

1 つの命令でアクセスできる頂点入力レジスタは 1 つだけです。ただし、命令に含まれる各ソースは、読み取ったベクトルを個別にスィズルしたり、正負を反転させたりすることができます。

ここでは、頂点の宣言を使って、2D の頂点位置座標データをレジスタ v0 にバインドする例を示します。

頂点宣言はアプリケーション内に置きます。

D3DVERTEXELEMENT9 decl[] =
{
    { 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
      D3DDECL_END()
};

次に、対応する頂点シェーダー宣言を示します。

dcl_position v0
頂点シェーダーのバージョン 1_1 2_0 2_sw 2_x 3_0 3_sw
位置座標レジスタ x x x x x x