D3D基本图元和顶点缓冲

图元

三维图元是组成单个三维实体的顶点集合。在D3D中,一共有三种基本图元,分别是点、线和三角形。

通常三维图元是多边形。一个多边形是由至少三个顶点描绘的三维形体。最简单的多边形是三角形。Direct3D使用三角形组成大多数多边形,因为三角形的三个顶点一定是共面的。应用程序可以用三角形组合成大而复杂的多边形及网格(mesh)。

绘制基本图元

所有的3D图形都是由三角形构成的。为什么是三角形而不是别的图形呢?因为三角形有许多优越之处,例如:绘制效率。而且我们知道,任意不在同一条直线上的三个点都能构成三角形,这对于在空间中形成某种复杂图形是很有益处的。所以,如果我们想得到一个矩形,最有效率的是绘制两个相同的合并的三角形,这样要优于直接绘制一个矩形。

顶点

顶点(vertex)就是3D空间中的一个点。例如,三角形有三个顶点,而矩形有四个。在3D空间中,可以用三个顶点来指定一个三角形。要理解顶点,我们首先要理解笛卡尔坐标系。

3DPrimitives

Primitive原始之意,3Dprimitive就是设备所支持的原始的类型。通常我们也把它们称作图元Primitive包括:点列、线列、线带、三角形列、三角形带和三角扇形。

下面是各种图元的示例

PointLists

D3D基本图元和顶点缓冲

LineLists

D3D基本图元和顶点缓冲

LineStrips

D3D基本图元和顶点缓冲

TriangleLists

D3D基本图元和顶点缓冲

TriangleStrips

D3D基本图元和顶点缓冲

TriangleFans

D3D基本图元和顶点缓冲

FVF(灵活顶点格式)

灵活顶点格式(FVF)是用来描述顶点属性的一种格式,而这种格式是可以由我们自定义的,所以称它为灵活顶点格式。至此,我们至少知道了顶点有三种属性:x值、y值和z值。其实顶点还可以有其他属性,例如颜色。利用灵活顶点格式(FVF)我们能方便的指定顶点的属性。

VertexBuffers(顶点缓冲)

顶点缓冲就是一块用于保存顶点的内存缓冲区。顶点缓冲可以保存任何的顶点类型。当一些顶点已经被保存在顶点缓冲区中,就可以通过程序操作它们,例如渲染、变换等。

Colours(颜色)

DirectX中,如果我们要指定一种颜色,我们可以用D3DCOLOR_XRGB宏。宏中有三个参数,每个参数都是0255间的整数值,分别用于描述颜色的红、绿、蓝分量

例如:

D3DCOLOR_XRGB(0,0,0)是黑色。

D3DCOLOR_XRGB(255,255,255)是纯白色。

D3DCOLOR_XRGB(0,255,0)是亮绿色(没有红与蓝,全是绿色的分量)。

D3DCOLOR_XRGB(100,20,100)是暗紫色(100,20绿,100)

渲染顶点

Direct3D写的应用程序使用顶点(Vertex)构造几何物体。每一个三维空间(3D)场景包括一个或几个这样的几何物体。

用顶点构造一个几何物体应该采用以下步骤:

1定义一个自定义顶点类型

2创建顶点缓冲

3渲染到显示屏

D3D基本图元和顶点缓冲

下面的代码将用不同的方式绘制图元:

D3D基本图元和顶点缓冲

程序截图

程序源代码的下载地址:http://download.csdn.net/source/2906693

<!--EndFragment-->

你可能感兴趣的:(3D)