3D物体的模型表示
场景(scene)是物体或模型的的集合,所有物体都可以使用三角形网格逼近表示:
三角形(triangle)是构建物体模型的基本单元,也是基本图元之一(Primitive,包括点和线段)
而构成三角形的则是顶点(vertex ),顶点在3D系统中描述一个点,三角形由三个点构成
基本图元(Primitives)
3D空间图形的基本组成元素就是图元(Primitive),不仅仅是三角形,包括以下:
(以下图形在z=0平面)
1点列表(Point Lists):由系列顶点组成,每个点都是独立的,散列的
2线列表(Line Lists):每一组顶点构成一条独立分隔的线段,通常用做3D网格,雨点,路标线等物体建模
3线条纹(Line Strips):类似于线列表,但是每两条线又被一条线段连接,常用于wire-frame物体,如地形,草丛
4三角形列表(Triangle Lists):每三个顶点一组构成一个独立的三角形
5三角形条纹(Triangle Strips):三角形间相互连接
6三角形扇面(Triangle Fans):所有三角形拥有一个共同顶点
顶点缓存与索引缓存
D3D使用灵活顶点格式(Flexible Vertex Format,FVF),定义一个顶点的位置及其他信息,包括颜色、法线等,通过组合不同顶点格式,以令我们可以自定义自己的顶点格式
#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // from the D3DFVF_XYZRHW flag
DWORD color; // from the D3DFVF_DIFFUSE flag
}
几个重要的顶点格式:
指定x,y,z坐标位置,同时它是Untransformed的,表明未经过顶点转换到屏幕坐标 |
|