入力レジスタ
頂点シェーダー入力レジスタです。
頂点シェーダーが実行される前に、(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 |