9

DirectX3D研究院之DirectX3D基本图元(二)

 3 years ago
source link: https://www.xuanyusong.com/archives/819
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

DirectX3D研究院之DirectX3D基本图元(二)

在说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,以上仅供参考,如有不足还请指教,大家共同学习进步。

作者:ZXGoto
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您愿意花20块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK