取样器 (Direct3D 9 asm-ps)
采样器是像素着色器的输入伪寄存器,用于标识采样阶段。 有 16 个像素着色器采样阶段寄存器:s0 到 s15。 因此,在单个着色器通道中最多可以读取 16 个纹理表面。 使用采样器寄存器的说明为 texld 和 texldp。
在与 dcl_samplerType (sm2、 sm3 - ps asm) 指令一起使用之前,必须声明取样器。
像素着色器版本 | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
取样器 | x | x | x | x | x |
采样器是伪寄存器,因为你无法直接读取或写入它们。
采样单元对应于纹理采样阶段,封装 SetSamplerState 提供的特定于采样的状态。 每个采样器唯一标识单个纹理表面,该图面使用 SetTexture 设置为相应的采样器。 但是,可以在多个采样器中设置相同的纹理图面。
在绘制时,纹理不能同时设置为呈现目标和阶段的纹理。
采样器可能显示为纹理加载指令中的唯一参数: texldl - ps。
在 ps_3_0,如果使用采样器,则需要使用 dcl_samplerType (sm2、 sm3 - ps asm) 指令在 着色器程序的开头声明它。
对尺寸大于纹理坐标中尺寸的纹理进行采样是非法的。 采样尺寸小于纹理坐标中存在的纹理将忽略额外的纹理坐标。
相关主题