Microsoft DirectX 8.0 (C++) |
これらは定数レジスタである。定数レジスタ ファイルを構成するのは、最低 96 個の 4 成分浮動小数点値ベクトルである。定数レジスタは、絶対位置または相対位置で指定できる。
c[n] ; 絶対位置 c[a0.x + n] ; 相対位置
したがって、定数レジスタは、絶対アドレスを使って読み取ることも、アドレス レジスタを介して相対的にアドレス指定することもできる。レジスタの範囲外から読み取りを行うと、(0.0, 0.0, 0.0, 0.0) が返る。
頂点シェーダから見ると、定数レジスタ ファイルは読み取り専用である。1 回の命令でアクセスできる定数レジスタは 1 つだけである。ただし、その命令に含まれる各ソースは読み取ったベクトルを個別に入れ換えたり正負を反転したりできる。
D3DCAPS8 の MaxVertexShaderConst メンバは、使用可能な定数レジスタの個数を示す。Microsoft® DirectX® 8.0 のシェーダは、少なくとも 96 個の定数をサポートする。
定数レジスタ ファイルのデータは、頂点シェーダの定数レジスタを設定する Microsoft Direct3D® API 関数を呼び出すとロードされる。代わりに、シェーダを作成するときに、IDirect3DDevice8::SetVertexShader の呼び出しによって、C++ アプリケーションでロードする定数を指定できる。