首页 > 【Direct3D研究院之PC网游开发】 > DirectX3D研究院之DirectX3D基本图元(二)
2012
05-09

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

如图,DirectX3D研究院之DirectX3D基本图元(二) - 雨松MOMO程序研究院 - 1

顶点表示的单个的点,虽然顶点看上去简单,但是它可以表达一些特殊效果,如星星。

2、线段列表(D3DPT_LINELIST

如图,

DirectX3D研究院之DirectX3D基本图元(二) - 雨松MOMO程序研究院 - 2

线段列表就是表示相互独立的线段的集合,在绘制线段列表时,顶点的数量必须是>=2的偶数。

3、线段条带(D3DPT_LINESTRIP

如图,

DirectX3D研究院之DirectX3D基本图元(二) - 雨松MOMO程序研究院 - 3

线段条带表示一组相互连接的线段,线段条带绘制的顺序取决于顶点装填入顶点缓冲区的顺序(这个我们以后的内容会讲解,在此先不用理会)。用线段条带绘制3条线段需要4个顶点,而用线段列表绘制的话,却需要6个顶点,因此用线段条带绘制如上图的效果要比用线段列表效率高,且使用内存小。

 

4、三角形列表(D3DPT_TRIANGLELIST

如图

DirectX3D研究院之DirectX3D基本图元(二) - 雨松MOMO程序研究院 - 4

三角形列表就是一组相互独立的三角形的集合,和线段列表一样,在绘制三角形列表时,所用顶点数量一定要是>=3的并且可被3整除的整数。

 

5、三角形条带(D3DPT_TRIANGLESTRIP

如图,

DirectX3D研究院之DirectX3D基本图元(二) - 雨松MOMO程序研究院 - 5

三角形条带一组相互连接的三角形,在绘制上图图形是,三角形条带比三角形列表要节省内存且效率高。同时,它也是绘制复杂图形最常用的方式。

6、三角形扇(D3DPT_TRIANGLEFAN

如图,

DirectX3D研究院之DirectX3D基本图元(二) - 雨松MOMO程序研究院 - 6

三角形扇就是有一组三角形组成的扇形,它与三角形条带十分相似,它们的不同就是三角形扇共享一个顶点(O点)。

以上就是directX3D提供的基本图元,它们都可以应用纹理和材质(即便是简单如顶点),我们看到的游戏中的复杂世界就是由这些看上去简单的图元构成的。

今天先就写到这里吧,已经很晚了,再不睡,有人要开骂了。。。

我是ZXGoto,以上仅供参考,如有不足还请指教,大家共同学习进步。

 

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

DirectX3D研究院之DirectX3D基本图元(二)》有 3 条评论

  1. ZXGoto 说:

    额,什么情况。。。

  2. ruoruo娃娃 说:

    支持张碎碎~ 支持你们~加油!!!碎碎 DirectX3D研究院之DirectX3D基本图元(二) - 雨松MOMO程序研究院 - 1

留下一个回复

你的email不会被公开。