D3DFVF
灵活的顶点格式常量或 FVF 代码用于描述在将由固定函数管道处理的单个数据流中交错的顶点的内容。
顶点数据标志
以下标志描述顶点格式。 有关顶点格式的信息,请参阅 固定函数 FVF 代码(Direct3D 9)。
#define | 描述 | 数据顺序和类型 |
---|---|---|
D3DFVF_DIFFUSE | 顶点格式包括漫射颜色组件。 | DWORD 按 ARGB 顺序排列。 请参阅 D3DCOLOR_ARGB。 |
D3DFVF_NORMAL | 顶点格式包括顶点法向量。 此标志不能与D3DFVF_XYZRHW标志一起使用。 | float、float、float |
D3DFVF_PSIZE | 以点大小指定的顶点格式。 此大小以未转换和点亮的顶点的相机空间单位表示,以及用于转换和点亮顶点的设备空间单位。 | 浮 |
D3DFVF_SPECULAR | 顶点格式包括反射颜色组件。 | DWORD 按 ARGB 顺序排列。 请参阅 D3DCOLOR_ARGB。 |
D3DFVF_XYZ | 顶点格式包括未转换顶点的位置。 此标志不能与D3DFVF_XYZRHW标志一起使用。 | float、float、float。 |
D3DFVF_XYZRHW | 顶点格式包括已转换顶点的位置。 此标志不能与D3DFVF_XYZ或D3DFVF_NORMAL标志一起使用。 | float、float、float、float。 |
通过D3DFVF_XYZB5 D3DFVF_XYZB1 | 顶点格式包含位置数据,以及用于多matrix 顶点混合作的相应权重(beta)值。 目前,Direct3D 最多可与三个加权值和四个混合矩阵混合。 有关使用混合矩阵的详细信息,请参阅 索引顶点混合(Direct3D 9)。 | 1、2 或 3 个浮点数。 使用D3DFVF_LASTBETA_UBYTE4时,最后一个混合权重被视为 DWORD。 |
D3DFVF_XYZW | 顶点格式包含转换和剪切(x、y、z、w) 数据。 ProcessVertices 不会调用剪辑器,而是将数据输出到剪辑坐标中。 此常量专为可编程顶点管道设计,只能与可编程顶点管道一起使用。 | float、float、float、float |
纹理标志
以下标志描述固定函数管道使用的纹理标志。
#define | 描述 |
---|---|
D3DFVF_TEX0 - D3DFVF_TEX8 | 此顶点的纹理坐标集数。 这些标志的实际值不是顺序的。 |
D3DFVF_TEXCOORDSIZEN(coordIndex) | 定义纹理坐标数据集。 n 表示纹理坐标的维度。 coordIndex 指示纹理坐标索引号。 请参阅 D3DFVF_TEXCOORDSIZEN 和 纹理坐标和纹理阶段。 |
掩码标志
以下标志描述了固定函数管道使用的掩码标志。
#define | 描述 |
---|---|
D3DFVF_POSITION_MASK | 位置位的掩码。 |
D3DFVF_RESERVED0,D3DFVF_RESERVED2 | 屏蔽 FVF 中保留位的值。 请勿使用。 |
D3DFVF_TEXCOUNT_MASK | 纹理标志位的掩码值。 |
其他标志
以下标志描述了固定函数管道使用的各种标志。
#define | 描述 | |
D3DFVF_LASTBETA_D3DCOLOR | 顶点位置数据中的最后一个 beta 字段的类型为D3DCOLOR。 beta 字段中的数据与矩阵调色板配合使用来指定矩阵索引。 | |
D3DFVF_LASTBETA_UBYTE4 | 顶点位置数据中的最后一个 beta 字段的类型为 UBYTE4。 beta 字段中的数据与矩阵调色板配合使用来指定矩阵索引。
给定 FVF 声明为:D3DFVF_XYZB5 |D3DFVF_LASTBETA_UBYTE4。 Weight 和 MatrixIndices 包含在 beta[5]中,其中D3DFVF_LASTBETA_UBYTE4表示将 beta[5] 中的最后一个 DWORD 解释为类型 UBYTE4。 |
|
D3DFVF_TEXCOUNT_SHIFT | 要移动整数值的位数,用于标识顶点的纹理坐标数。 此值可能如下所示。
|
例子
以下示例演示了其他常见标志组合。
// Untransformed vertex for lit, untextured, Gouraud-shaded content.
dwFVF = ( D3DFVF_XYZ | D3DFVF_DIFFUSE );
// Untransformed vertex for unlit, untextured, Gouraud-shaded
// content with diffuse material color specified per vertex.
dwFVF = ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE );
// Untransformed vertex for light-map-based lighting.
dwFVF = ( D3DFVF_XYZ | D3DFVF_TEX2 );
// Transformed vertex for light-map-based lighting with shared rhw.
dwFVF = ( D3DFVF_XYZRHW | D3DFVF_TEX2 );
// Heavyweight vertex for unlit, colored content with two
// sets of texture coordinates.
dwFVF = ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE |
D3DFVF_SPECULAR | D3DFVF_TEX2 );
常量信息
要求 | 价值 |
---|---|
页眉 | d3d9types.h |
最低作系统 | Windows 98 |
相关主题