输出寄存器

  • 顶点颜色寄存器
  • 雾寄存器
  • 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

 

雾寄存器 - oFog

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

顶点着色器版本 1_1 2_0 2_sw 2_x 3_0 3_sw
雾寄存器 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] 中的纹理坐标。 使用平铺纹理的对象(如地形)通常具有介于 [-?,+?] 的纹理坐标 哪里? 可以是较大的浮点数。

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

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

顶点着色器寄存器