phase - ps

阶段指令标记阶段 1 和阶段 2 之间的转换。 如果没有阶段指令,则整个着色器将像第 2 阶段着色器一样运行。

此说明仅适用于版本 1_4。

语法

phase

备注

像素着色器版本 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
phase x

 

阶段指令之前发生的着色器指令是阶段 1 指令。 所有其他指令都是阶段 2 指令。 通过对指令使用两个阶段,每个着色器的最大指令数将增加。

阶段转换的不幸副作用是 临时寄存器 的 alpha 分量在整个转换期间不会保留。 换句话说,必须在阶段指令之后重新初始化 alpha 分量。

示例

此示例演示如何在着色器中将指令分组为阶段 1 或阶段 2 指令。

阶段指令通常也称为阶段标记,因为它标记阶段 1 和阶段 2 指令之间的转换。 在版本 1_4 像素着色器中,如果阶段标记不存在,则着色器将像在阶段 2 中一样运行。 这一点很重要,因为阶段 1 和阶段 2 指令与注册可用性之间存在差异。 在整个参考部分中会记录这些差异。

ps_1_4
  // Add phase 1 instructions here

phase
  // Add phase 2 instructions here

像素着色器说明