纹理坐标处理 (Direct3D 9)

下图显示了纹理坐标从源、处理到光栅器的路径。

从源到光栅器纹理坐标的路径示意图

系统可以从两个源中绘制纹理坐标。 对于给定的纹理阶段,可以使用包含在顶点格式中的纹理坐标 (D3DFVF_TEX1 D3DFVF_TEX8) ,也可以使用 Direct3D 自动生成的纹理坐标。 有关后一种情况的详细信息,请参阅 自动生成的纹理坐标 (Direct3D 9) 。 如果当前纹理阶段的D3DTSS_TEXTURETRANSFORMFLAGS纹理阶段状态设置为D3DTTFF_DISABLE (默认设置) ,则不会转换输入坐标。 如果D3DTSS_TEXTURETRANSFORMFLAGS> 设置为任何其他值,则该阶段的转换矩阵将应用于输入坐标。

D3DTEXTURETRANSFORMFLAGS 枚举类型定义D3DTSS_TEXTURETRANSFORMFLAGS纹理阶段状态的有效值。 除了绕过纹理坐标转换的 D3DTTFF_DISABLE 标志外,此枚举中定义的值配置系统传递给光栅器的输出坐标数。 D3DTTFF_COUNT1 D3DTTFF_COUNT4标志指示系统将输出坐标中的一个、两个、三个或四个元素传递到光栅器。

D3DTTFF_PROJECTED标志很特殊:它告诉系统纹理坐标是投影纹理。 将 D3DTTFF_PROJECTED 标志与 D3DTEXTURETRANSFORMFLAGS 的另一个成员组合在一起,以指示光栅器在光栅化之前将所有元素除以最后一个元素。 例如,当显式使用三元素纹理坐标时,或者当转换生成三个元素纹理坐标时,可以组合D3DTTFF_COUNT3和D3DTTFF_PROJECTED标志,使光栅器将前两个元素除以最后一个元素,从而生成处理 2D 纹理所需的 2D 纹理坐标。

注意

除立方环境贴图和体积纹理外,光栅器无法使用具有两个以上元素的纹理坐标来寻址纹理。 如果指定的元素多于用于处理该阶段的当前纹理的元素,则忽略无关元素。 将 2D 纹理坐标用于 1D 纹理时,这同样适用。

 

其他信息包含在以下主题中。

纹理坐标