D3D基本图元和顶点缓冲

 

图元

 

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

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

 

 

绘制基本图元

 

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

 

 

顶点

 

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

 

 

3D Primitives

 

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

 

 

下面是各种图元的示例

 

 

Point Lists

 

 

 

 

Line Lists

 

 

 

 

Line Strips

 

 

 

 

Triangle Lists

 

 

 

Triangle Strips 

 

 

 

Triangle Fans

 

 

 

 

FVF(灵活顶点格式)

 

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

 

 

Vertex Buffers (顶点缓冲

 

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

 

 

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) 场景包括一个或几个这样的几何物体 。

 

 

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

 

 

定义一个自定义顶点类型

创建顶点缓冲

渲染到显示屏 

 

 

 

 

 

 

 

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

 

 

程序截图

 

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

 

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页