pred の場合 - vs

if pred - vs... の開始else - vs...endif - vs block。述語レジスタの内容から取得された条件を使用します。

構文

if [!]pred.replicateSwizzle

 

この場合、

  • [!]省略可能な NOT 修飾子。 これにより、述語レジスタの値が変更されます。
  • pred は述語レジスタ p0 です。 述語の登録に関するページを参照してください。
  • replicateSwizzle は、4 つのコンポーネント (swizzled) すべてにコピー (またはレプリケート) される 1 つのコンポーネントです。 有効なコンポーネントは、x、y、z、w または r、g、b、a です。

解説

頂点シェーダーのバージョン 1_1 2_0 2_x 2_sw 3_0 3_sw
pred の場合 x x x x

 

この命令は、述語レジスタのチャネルに基づいてコードブロックをスキップするために使用されます。 各if_pred ブロックは、else または endif 命令で終わる必要があります。

次のような制約があります。

if_predブロックは入れ子にすることができます。 これは、 if_comp ブロックと 共に動的な入れ子の深さの合計にカウントされます。

if_pred ブロックはループ ブロックをまたぐことはできません。ループ ブロックは完全に内部に配置するか、または囲む必要があります。

頂点シェーダーの手順