在说directX3D基本图元之前,我们首先来看一下directX3D使用的坐标系,不同于我们熟知的笛卡尔右手坐标系,directX3D使用的是左手坐标系,即以电脑屏幕为基准,向右为x轴,向上为y轴,向里为z轴,可能刚开始接触左手坐标系会有些不适应,不过时间久了你就会发现,使用左手坐标系开发3D应用要比右手坐标系舒服得多。好,废话少说,下面我们开始探讨directX3D的基本图元。
图元,从字面理解,就是基本图形元素,在directX3D中,图元,其实就是用来组成三维实体的一组顶点,最简单的图元就是点列,即由三维坐标系中的点组成的集合,一般情况下,在3D编程中,我们接触最多的图元是多边形,而最基础的多边形是三角形,同时,三角形也是构成更复杂图形(如mesh)的基础(这是因为,三角形的三点是共面的,又因为渲染共面的顶点比不共面的顶点效率要高)。
DirectX3D提供的基本图元有6种:顶点(D3DPT_POINT)、线段列表(D3DPT_LINELIST)、线段条带(D3DPT_LINESTRIP)、三角形列表(D3DPT_TRIANGLELIST)、三角形条带(D3DPT_TRIANGLESTRIP)、三角形扇(D3DPT_TRIANGLEFAN)。
1、顶点(D3DPT_POINT)
顶点表示的单个的点,虽然顶点看上去简单,但是它可以表达一些特殊效果,如星星。
2、线段列表(D3DPT_LINELIST)
如图,
线段列表就是表示相互独立的线段的集合,在绘制线段列表时,顶点的数量必须是>=2的偶数。
3、线段条带(D3DPT_LINESTRIP)
如图,
线段条带表示一组相互连接的线段,线段条带绘制的顺序取决于顶点装填入顶点缓冲区的顺序(这个我们以后的内容会讲解,在此先不用理会)。用线段条带绘制3条线段需要4个顶点,而用线段列表绘制的话,却需要6个顶点,因此用线段条带绘制如上图的效果要比用线段列表效率高,且使用内存小。
4、三角形列表(D3DPT_TRIANGLELIST)
如图
三角形列表就是一组相互独立的三角形的集合,和线段列表一样,在绘制三角形列表时,所用顶点数量一定要是>=3的并且可被3整除的整数。
5、三角形条带(D3DPT_TRIANGLESTRIP)
如图,
三角形条带一组相互连接的三角形,在绘制上图图形是,三角形条带比三角形列表要节省内存且效率高。同时,它也是绘制复杂图形最常用的方式。
6、三角形扇(D3DPT_TRIANGLEFAN)
如图,
三角形扇就是有一组三角形组成的扇形,它与三角形条带十分相似,它们的不同就是三角形扇共享一个顶点(O点)。
以上就是directX3D提供的基本图元,它们都可以应用纹理和材质(即便是简单如顶点),我们看到的游戏中的复杂世界就是由这些看上去简单的图元构成的。
今天先就写到这里吧,已经很晚了,再不睡,有人要开骂了。。。
我是ZXGoto,以上仅供参考,如有不足还请指教,大家共同学习进步。
- 本文固定链接: https://www.xuanyusong.com/archives/819
- 转载请注明: ZXGoto 于 雨松MOMO程序研究院 发表
额,什么情况。。。
支持张碎碎~ 支持你们~加油!!!碎碎
支持!!!