定数ブール型レジスタ (HLSL VS リファレンス)

このレジスタは、静的フロー制御命令で使用されるビットのコレクションです (たとえば、 bool - vs - else - vs - endif - vs)。 そのうちの 16 個があるため、シェーダーは 16 個の独立した分岐条件を持つことができます。 これらは defb - vs または SetVertexShaderConstantB を使用して設定できます。

シェーダー定数の動作が Direct3D 8 と Direct3D 9 の間で変更されました。

  • Direct3D 9 の場合、defx で設定された定数は、シェーダー定数空間に値を割り当てます。 defx で宣言された定数の有効期間は、そのシェーダーの実行のみに限定されます。 逆に、API SetXXXShaderConstantX を使用して設定された定数は、グローバル空間で定数を初期化します。 SetxxxShaderConstants が呼び出されるまで、グローバル空間の定数はローカル空間にコピーされません (シェーダーに表示されます)。
  • Direct3D 8 の場合、defx または API で設定された定数はどちらもシェーダー定数空間に値を割り当てます。 シェーダーが実行されるたびに、定数は設定に使用される手法に関係なく、現在のシェーダーによって使用されます。

頂点シェーダー レジスタ