D3DTEXTURESTAGESTATETYPE 枚举
纹理阶段状态定义多混合器纹理操作。 一些采样器状态设置顶点处理,一些设置像素处理。 可以使用状态块保存和还原纹理阶段状态(请参阅状态块保存和还原状态 (Direct3D 9))。
语法
typedef enum D3DTEXTURESTAGESTATETYPE {
D3DTSS_COLOROP = 1,
D3DTSS_COLORARG1 = 2,
D3DTSS_COLORARG2 = 3,
D3DTSS_ALPHAOP = 4,
D3DTSS_ALPHAARG1 = 5,
D3DTSS_ALPHAARG2 = 6,
D3DTSS_BUMPENVMAT00 = 7,
D3DTSS_BUMPENVMAT01 = 8,
D3DTSS_BUMPENVMAT10 = 9,
D3DTSS_BUMPENVMAT11 = 10,
D3DTSS_TEXCOORDINDEX = 11,
D3DTSS_BUMPENVLSCALE = 22,
D3DTSS_BUMPENVLOFFSET = 23,
D3DTSS_TEXTURETRANSFORMFLAGS = 24,
D3DTSS_COLORARG0 = 26,
D3DTSS_ALPHAARG0 = 27,
D3DTSS_RESULTARG = 28,
D3DTSS_CONSTANT = 32,
D3DTSS_FORCE_DWORD = 0x7fffffff
} D3DTEXTURESTAGESTATETYPE, *LPD3DTEXTURESTAGESTATETYPE;
常量
-
D3DTSS_COLOROP
-
纹理阶段状态是由 D3DTEXTUREOP 枚举类型的一个成员标识的纹理颜色混合操作。 第一个纹理阶段(阶段 0)的默认值为 D3DTOP_MODULATE;对于所有其他阶段,默认值为 D3DTOP_DISABLE。
-
D3DTSS_COLORARG1
-
纹理阶段状态是阶段的第一个颜色自变量,由 D3DTA 之一标识。 默认自变量为 D3DTA_TEXTURE。
指定 D3DTA_TEMP 以选择用于读取或写入的临时寄存器颜色。 如果存在 D3DPMISCCAPS_TSSARGTEMP 设备功能,则支持 D3DTA_TEMP。 寄存器的默认值为 (0.0, 0.0, 0.0, 0.0)。
-
D3DTSS_COLORARG2
-
纹理阶段状态是阶段的第二个颜色自变量,由 D3DTA 标识。 默认自变量为 D3DTA_CURRENT。 指定 D3DTA_TEMP 以选择用于读取或写入的临时寄存器颜色。 如果存在 D3DPMISCCAPS_TSSARGTEMP 设备功能,则支持 D3DTA_TEMP。 寄存器的默认值为 (0.0, 0.0, 0.0, 0.0)
-
D3DTSS_ALPHAOP
-
纹理阶段状态是由 D3DTEXTUREOP 枚举类型的一个成员标识的纹理 alpha 混合操作。 第一个纹理阶段(阶段 0)的默认值为 D3DTOP_SELECTARG1,对于所有其他阶段,默认值为 D3DTOP_DISABLE。
-
D3DTSS_ALPHAARG1
-
纹理阶段状态是阶段的第一个 alpha 自变量,由 D3DTA 标识。 默认自变量为 D3DTA_TEXTURE。 如果未为此阶段设置纹理,则默认自变量为 D3DTA_DIFFUSE。 指定 D3DTA_TEMP 以选择用于读取或写入的临时寄存器颜色。 如果存在 D3DPMISCCAPS_TSSARGTEMP 设备功能,则支持 D3DTA_TEMP。 寄存器的默认值为 (0.0, 0.0, 0.0, 0.0)。
-
D3DTSS_ALPHAARG2
-
纹理阶段状态是阶段的第二个 alpha 自变量,由 D3DTA 标识。 默认自变量为 D3DTA_CURRENT。 指定 D3DTA_TEMP 以选择用于读取或写入的临时寄存器颜色。 如果存在 D3DPMISCCAPS_TSSARGTEMP 设备功能,则支持 D3DTA_TEMP。 寄存器的默认值为 (0.0, 0.0, 0.0, 0.0)。
-
D3DTSS_BUMPENVMAT00
-
纹理阶段状态是平滑矩阵中 [0][0] 系数的浮点值。 默认值为 0.0。
-
D3DTSS_BUMPENVMAT01
-
纹理阶段状态是平滑矩阵中 [0][1] 系数的浮点值。 默认值为 0.0。
-
D3DTSS_BUMPENVMAT10
-
纹理阶段状态是平滑矩阵中 [1][0] 系数的浮点值。 默认值为 0.0。
-
D3DTSS_BUMPENVMAT11
-
纹理阶段状态是平滑矩阵中 [1][1] 系数的浮点值。 默认值为 0.0。
-
D3DTSS_TEXCOORDINDEX
-
用于此纹理阶段的纹理坐标集的索引。 每个顶点最多可以指定八组纹理坐标。 如果顶点不包含指定索引处的一组纹理坐标,则系统默认为 u 和 v 坐标 (0,0)。
使用顶点着色器进行呈现时,必须将每个阶段的纹理坐标索引设置为其默认值。 每个阶段的默认索引等于阶段索引。 将此状态设置为此纹理阶段使用的每个顶点的坐标集之从零开始的索引。
此外,应用程序还可以作为逻辑 OR 与要设置的索引包括其中一个常量,以请求 Direct3D 自动生成纹理转换的输入纹理坐标。 有关所有常量的列表,请参阅 D3DTSS_TCI。
除了解析为零的 D3DTSS_TCI_PASSTHRU(如果设置的索引中包含以下任何值)外,系统会严格使用索引来确定纹理包装模式。 执行环境映射时,这些标志最有用。
-
D3DTSS_BUMPENVLSCALE
-
平滑亮度的浮点比例值。 默认值为 0.0。
-
D3DTSS_BUMPENVLOFFSET
-
平滑亮度的浮点偏移值。 默认值为 0.0。
-
D3DTSS_TEXTURETRANSFORMFLAGS
-
D3DTEXTURETRANSFORMFLAGS 枚举类型的成员,控制此纹理阶段的纹理坐标的转换。 默认值为 D3DTTFF_DISABLE。
-
D3DTSS_COLORARG0
-
三元运算(相乘、相加和线性内插)的第三个颜色操作数的设置,由 D3DTA 标识。 如果存在 D3DTEXOPCAPS_MULTIPLYADD 或 D3DTEXOPCAPS_LERP 设备功能,则支持此设置。 默认自变量为 D3DTA_CURRENT。 指定 D3DTA_TEMP 以选择用于读取或写入的临时寄存器颜色。 如果存在 D3DPMISCCAPS_TSSARGTEMP 设备功能,则支持 D3DTA_TEMP。 寄存器的默认值为 (0.0, 0.0, 0.0, 0.0)。
-
D3DTSS_ALPHAARG0
-
三元运算(相乘、相加和线性内插)的 alpha 通道选择器操作数的设置,由 D3DTA 标识。 如果存在 D3DTEXOPCAPS_MULTIPLYADD 或 D3DTEXOPCAPS_LERP 设备功能,则支持此设置。 默认自变量为 D3DTA_CURRENT。 指定 D3DTA_TEMP 以选择用于读取或写入的临时寄存器颜色。 如果存在 D3DPMISCCAPS_TSSARGTEMP 设备功能,则支持 D3DTA_TEMP。 默认自变量为 (0.0, 0.0, 0.0, 0.0)。
-
D3DTSS_RESULTARG
-
设置为为此阶段的结果选择目标寄存器,由 D3DTA 标识。 此值可以设置为 D3DTA_CURRENT(默认值)或 D3DTA_TEMP,这是一个临时寄存器,可以作为输入自变量读入后续阶段。 传递到雾混合器和帧缓冲区的最终颜色取自 D3DTA_CURRENT,因此必须将最后一个活动纹理阶段状态设置为写入当前项。 如果存在 D3DPMISCCAPS_TSSARGTEMP 设备功能,则支持此设置。
-
D3DTSS_CONSTANT
-
每阶段常量颜色。 若要查看设备是否支持每阶段常量颜色,请参阅 D3DPMISCCAPS中的 D3DPMISCCAPS_PERSTAGECONSTANT 常量。 D3DTSS_CONSTANT 由 D3DTA_CONSTANT 使用。 请参阅 D3DTA。
-
D3DTSS_FORCE_DWORD
-
强制此枚举编译为大小为 32 位。 如果没有此值,某些编译器将允许此枚举编译为 32 位以外的大小。 未使用该值。
注解
此枚举类型的成员与 IDirect3DDevice9::GetTextureStageState 和 IDirect3DDevice9::SetTextureStageState 方法配合使用来检索和设置纹理状态值。
D3DTSS_BUMPENVMAT00、D3DTSS_BUMPENVMAT01、D3DTSS_BUMPENVMAT10 和 D3DTSS_BUMPENVMAT11 平滑矩阵系数的有效值范围大于或等于 -8.0 和小于 8.0。 此范围,以数学表示法表示 (-8.0,8.0)。
要求
要求 | 值 |
---|---|
头文件 |
|
另请参阅