源寄存器重排 (HLSL VS 参考)

在指令运行之前,源寄存器中的数据将复制到临时寄存器。 重排是指将任何源寄存器组件复制到任何临时寄存器组件的功能。 重排不会影响源寄存器数据。

组件重排

如下表所示,重排可应用于源寄存器数据的各个组件 (其中 是有效的顶点着色器输入寄存器之一 - vs_1_1) 。

组件修饰符 说明
r.[xyzw][xyzw][xyzw][xyzw] 源重排

 

  • 始终复制所有四个组件。 如果指定的分量少于四个,则重复最后一个分量 (xyy 表示 .xyyy) 。 如果未指定任何组件,则) (.xxxx 重复 x。
  • 组件可以按任意顺序显示。 v0.ywx 生成 v0.ywxx。
  • rgba 分量可以分别用于 xyzw (r for x、g for b 等) 。
  • 这些指令实现源寄存器单组件重排:exp、expp、logp、pow、rcp、rsq。 这些指令的结果将复制到所有四个目标寄存器组件。

重排不能用于 m3x2 - vsm3x3 - vsm4x3 - vsm4x4 - vs 指令。

顶点着色器寄存器修饰符