在计算机所能描绘的3D世界中,任何物体都是由多边形构成,它可以是三角形,也可以是四边形。所有的物体模型都是通过多边形网格逼近表示,因此这些多边形网格是构成物体模型的基本单元。
由于三角形是最简单的多边形,而Direct3D也使用三角形来描述物体模型。一个三角形包含三个顶点,为了能够通过三角形网格描述物体,首先需要定义这些三角形的顶点(Vertex),其中包括定义每个顶点的坐标位置及颜色等其他属性。
DirectX通过一种称作灵活顶点格式的方式描述三角形网格的每个顶点。灵活顶点格式由用户自定义其中所需要包含的顶点属性信息,例如可以指定顶点的三维坐标,颜色,顶点法线坐标及纹理坐标等。在创建自定义灵活顶点格式时,根据实际的需要可以定义一个只包含特定顶点信息的结构体。例如,可以定义一个仅包含顶点x,y,z坐标的灵活顶点格式的结构体,也可以定义一个包含有顶点颜色,法线向量,纹理坐标等复杂顶点信息的灵活顶点格式的结构体。
例如:
struct CUSTOMVERTEX
{
float x,y,z; //顶点的位置
DWORD clor; //顶点的颜色
};
s