共用方式為


if_comp - vs

啟動 if bool - vs ... else - vs ... endif - vs block,其條件是以可在著色器中計算的值為基礎。 此指示是用來根據條件略過程式碼區塊。

語法

if_comp src0、src1

 

其中:

  • _comp是兩個來源暫存器之間的比較。 可以是下列其中一項:

    語法 比較
    _燃氣輪機 大於
    _lt 小於
    _通用 電氣 大於或等於
    _樂 小於或等於
    _情 商 等於
    _ne 不等於

     

  • src0 是來源暫存器。 需要複寫 swizzle 才能選取元件。

  • src1 是來源暫存器。 需要複寫 swizzle 才能選取元件。

備註

頂點著色器版本 1_1 2_0 2_x 2_sw 3_0 3_sw
if_comp x x x x

 

此指示是用來根據條件略過程式碼區塊。

if_lt src0, src1
   jump to the corresponding else or endif instruction;

請小心在浮點數上使用等號和不等於比較模式。 由於在浮點計算期間發生四捨五入,因此可以針對 epsilon 值(小型非零數位)進行比較,以避免發生錯誤。

限制包含:

  • if_comp... else - vs ... endif - vs blocks (以及述詞 if 區塊) 可以巢狀至 24 層深。
  • src0 和 src1 暫存器需要複寫的旋轉。
  • if_comp區塊必須以 else - vs endif - vs 指令結尾 。
  • if_comp... else - vs ... endif - vs 區塊無法跨越迴圈區塊。 if_comp 區塊必須完全位於迴圈內部或外部 - 與 區塊。

範例

此指令提供條件式動態流程式控制制。

if_lt r3.x, r4.y
// Instructions to run if r3.x < r4.y

else
// Instructions to run otherwise

endif

頂點著色器指示