D3D图元讲解

转自:http://www.xuanyusong.com/archives/819



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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值