常量浮点寄存器 (HLSL PS 参考)
4D 浮点常量的像素着色器输入寄存器。
可以使用 def - ps 或 SetPixelShaderConstantF 设置它们。
着色器常量的行为在 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 设置常量值,则不需要着色器声明。
相关主题