输出寄存器

  • 顶点颜色寄存器
  • Fog 寄存器
  • Position_Register
  • Point_Size_Register
  • Texture_Coordinate_Register

寄存器名称前面有一个小写字母 o,表示输出寄存器是只读的。

顶点颜色寄存器 - oD0、oD1

oD0 是漫射颜色寄存器。 oD1 是反射颜色寄存器。 将内插 oD0 值并写入像素着色器的输入颜色寄存器 0 (v0) 。 将 oD1 值内插并写入像素着色器的输入颜色寄存器 1 (v1) 。 有关像素着色器颜色寄存器的详细信息,请参阅寄存器。

顶点着色器版本 1_1 2_0 2_sw 2_x 3_0 3_sw
顶点颜色寄存器 x x x x

 

Fog Register - oFog

输出迷雾值寄存器。 该值是要内插的雾因子,然后路由到雾表。 仅使用雾的标量 x 分量。 在传递到光栅器之前,值被固定在零和 1 之间。

顶点着色器版本 1_1 2_0 2_sw 2_x 3_0 3_sw
Fog 寄存器 x x x x

 

位置寄存器 - oPos

输出位置寄存器。 该值是同质剪辑空间中的位置。 此值必须由顶点着色器写入。

顶点着色器版本 1_1 2_0 2_sw 2_x 3_0 3_sw
位置寄存器 x x x x

 

点大小寄存器 - oPts

输出点大小寄存器。 仅使用点大小的标量 x 分量。

顶点着色器版本 1_1 2_0 2_sw 2_x 3_0 3_sw
点大小寄存器 x x x x

 

纹理坐标寄存器 - oT0 到 oT7

输出纹理坐标寄存器。 具体而言,这些是输出数据寄存器的数组,由纹理采样阶段将数据路由到像素着色器循环访问并用作纹理坐标。

顶点着色器版本 1_1 2_0 2_sw 2_x 3_0 3_sw
纹理坐标寄存器 x x x x

 

写入纹理坐标寄存器时,建议仅传递与相应纹理贴图的维度一样多的浮点值。 控制使用修饰符传递的值。 例如,对 2D 纹理贴图使用 .xy。

为纹理阶段启用纹理投影时,必须将所有四个浮点值写入相应的纹理寄存器。

使用可编程管道时,任何 D3DTTFF* 纹理转换标志都应为零。

纹理坐标范围

对象顶点数据提供输入纹理坐标。 不使用平铺纹理的对象通常具有 [0,1] 范围内的纹理坐标。 使用平铺纹理的对象(如地形)的纹理坐标通常范围为 [-?,+?] where ? 可以是较大的浮点数。

纹理坐标内插对顶点数据执行光栅化。 在光栅化期间,纹理坐标在对象顶点之间内插,通过纹理包装进行修改,并按纹理大小缩放 (同时考虑纹理地址模式) 以生成整数索引。 然后,该索引用于执行纹理查找。 MaxTextureRepeat 可用于确定纹理可以平铺的次数。

如果使用 texcoord 或 texcrd) 直接将纹理坐标读入像素着色器 (,则纹理坐标范围取决于指令和像素着色器版本。

顶点着色器寄存器