ps_1_1、ps_1_2、ps_1_3、ps_1_4
像素着色器汇编程序由一组指令组成,这些指令对寄存器中包含的像素数据进行操作。 运算表示为由运算符和一个或多个操作数组成的指令。 说明使用寄存器将数据传入和传出像素着色器 ALU。 某些说明也可以使用寄存器来保存临时结果。
注意
已弃用对像素着色器 1.x 的 HLSL 支持。
Instructions
像素着色器指令有两main类别:算术指令和纹理寻址指令。 算术指令修改颜色数据。 纹理寻址操作处理纹理坐标数据,在大多数情况下,对纹理采样。 像素着色器指令按像素运行;也就是说,他们不知道管道中的其他像素。
纹理寻址指令每个占用一个槽,但可以配对算术指令,以便在单个槽中启用颜色分量 (RGB) 和 alpha 分量指令。
ps_1_1、ps_1_2、ps_1_3 ps_1_4指令 包含可用说明的列表。
启用多重采样后,像素着色器每个像素仅运行一次,而不是每个子像素运行一次。 多重采样只会提高多边形边缘的分辨率,以及深度和模具测试。 例如,如果启用了 3x3 多重采样,并且发现光栅化的三角形覆盖了特定像素的 9 个子像素中的 5 个,则像素着色器将运行一次,并将相同的颜色结果应用于所有五个子像素。
寄存器
ps_1_1__ps_1_2__ps_1_3__ps_1_4寄存器 列出了着色器 ALU 使用的不同寄存器。
修改键
ps_1_X的修饰符 可用于更改指令的功能,或从寄存器读取或写入寄存器的数据。
Direct3D 9 需要中间计算,以保持所有图面格式的至少 8 位精度。 建议使用更高精度 (用于阶段内数学的 12 位) ,以及纹理阶段之间的饱和度为 8 位。 不支持可修改的舍入模式或异常。 应使用舍入到最接近的精度支持乘法,以将精度损失降到最低。
取样器计数
可用的纹理采样器数为:
- 对于 ps_1_0 - ps_1_3,最大值为 4。
- 对于ps_1_4,最大值为 6。
相关主题