常量布尔寄存器 (HLSL PS 参考)
此寄存器是静态流控制指令中使用的位集合, (例如, 如果 bool - ps - else - ps - endif - ps) 。 有 16 个分支,因此,着色器可以有 16 个独立的分支条件。 可以使用 defb - ps 或 SetPixelShaderConstantB 设置它们。
着色器常量的行为在 Direct3D 8 和 Direct3D 9 之间发生了变化。
- 对于 Direct3D 9,使用 defx 设置的常量将值赋给着色器常量空间。 使用 defx 声明的常量的生存期仅限于该着色器的执行。 相反,使用 API SetXXXShaderConstantX 设置的常量初始化全局空间中的常量。 在调用 SetxxxShaderConstants 之前,全局空间中的常量不会复制到本地空间, (着色器) 可见。
- 对于 Direct3D 8,使用 defx 或 API 设置的常量都向着色器常量空间赋值。 每次执行着色器时,当前着色器都会使用常量,而不考虑用于设置常量的技术。
像素着色器版本 | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
常量布尔寄存器 | x | x | x |
相关主题