常量浮点寄存器 (HLSL PS 参考)

像素着色器输入寄存器用于 4D 浮点常量。

可以使用 def - psSetPixelShaderConstantF 设置它们。

着色器常量的行为在 Direct3D 8 和 Direct3D 9 之间发生了变化。

  • 对于 Direct3D 9,常量设置为着色器常量空间的 defx 赋值。 使用 defx 声明的常量生存期仅限于该着色器的执行。 相反,使用 API SetXXXShaderConstantX 在全局空间中初始化常量设置常量。 在调用 SetxxxShaderConstants 之前 (,全局空间中的常量不会复制到对着色器) 可见的本地空间。
  • 对于 Direct3D 8,使用 defx 或 API 设置的常量都为着色器常量空间赋值。 每次执行着色器时,当前着色器都会使用常量,而不考虑用于设置它们的技术。

示例

下面是在着色器中声明两个浮点常量的示例。

def c40, 0.0f,0.0f,0.0f,0.0f;

每次调用 SetPixelShader 时,都会加载这些常量。

如果要使用 API 设置常量值,则不需要着色器声明。

寄存器