3d游戏程序设计入门

3d游戏程序设计入门

ID:16022089

大小:5.22 MB

页数:160页

时间:2018-08-07

3d游戏程序设计入门_第1页
3d游戏程序设计入门_第2页
3d游戏程序设计入门_第3页
3d游戏程序设计入门_第4页
3d游戏程序设计入门_第5页
资源描述:

《3d游戏程序设计入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3D游戏程序设计入门(DirectX®9.0)翁云兵声明:l本教程内容绝大部分来自FrankD.Luna所著的《Introductionto3DGameProgrammingwithDirectX9.0》。教程内容(特别是语言表达上)大部分是我根据自己理解所写的,因此也不是此书的中文翻译版。l由于我的英文水平很差,翻译过来就难免有错了,望读者原谅。当然如你认为我的水平实在是让人无法忍受那么请直接查阅英文教程。l由于我的工作太忙且水平有限,计划一周一篇文章。希望读者能够支持我。给我多提意见。l此中文教程版权归我所有

2、。l非商业应用可免费使用本教程。商业应用请同作者联系,Email:WengYB@126.com。特别感谢:lwww.GameRes.com是他让我走上了游戏开发的道路。l一直关心支持我的同事、同学。l我最最亲爱的老婆,没有她我不可能写出这本教程。第一部分必备的数学知识在这最开始的一部分中我们将介绍本书所要用到的数学知识。我们讨论的主题是向量,矩阵和相应的变换,当然还有一些有关面和线的内容。最开始阅读时这部分是可选的。本教程对这些知识的讨论是很有限的,因此对于不同数学知识背景的读者来说都容易阅读。对于想了解更多更全

3、的这方面信息的读者,请查看有关线性代数的书籍。当然已经学习过线性代数的读者也可将它作为有必要的复习内容来阅读。(这里推荐你看看《线性代数与空间解析几何》)除此之外,我们还将展示D3DX类中相关的数学模型和执行特殊变换的函数。目标学习向量以及它们的3D计算机图形程序学习矩阵以及学会使用它们来变换3D图形学习怎样模拟面和线以及它们的3D图形程序熟悉用于3D数学运算的D3DX库中包含的类和程序的子集三维空间中的向量几何学中,我们用有向线段表示向量,如图1。向量的两个属性是他的长度和他的顶点所指的方向。因此,可以用向量来

4、模拟既有大小又有方向的物理模型。例如,以后我们要实现的粒子系统。我们用向量来模拟粒子的速度和加速度。在3D计算机图形学中我们用向量不仅仅模拟方向。例如我们常常想知道光线的照射方向,以及在3D世界中的摄象机。向量为在3维空间中表示方向的提供了方便。图1向量与位置无关。有同样长度和方向的两个向量是相等的,即使他们在不同的位置。观察彼此平行的两个向量,例如在图1中u和v是相等的。我们继续学习左手坐标系。图2显示的是左手坐标系和右手坐标系。两者不同的是Z轴的方向。在左手坐标系Z轴是向书的里面跑的而右手坐标系是向书的外边跑

5、的。图2因为向量的位置不能改变它的性质,我们能把所有向量平移使他们的尾部和坐标系的原点重合。因此,当一个向量在标准位置我们能通过头点来描述向量。图3显示的是图1中的向量在标准位置的样子。图3我们通常用小写字母表示一个向量,但有时也用大写字母。如2、3和4维向量分别是:u=(ux,uy),N=(Nx,Ny,Nz),c=(cx,cy,cz,cw)。我们现在介绍3D中的4个向量,就象图4显示的。首先是都由含有0的零向量;它被表示成加粗的0=(0,0,0)。接下来3个特殊的向量标准基向量。它们被叫做i,j和k向量,分别沿

6、着坐标系的x轴,y轴和z轴,并且有1的单位长:i=(1,0,0),j=(0,1,0),andk=(0,0,1)。注意:只有1个单位长度的向量叫做单位向量。图4在D3DX库中,我们能用D3DXVECTOR3类表示3维空间中的向量。它的定义是:typedefstructD3DXVECTOR3:publicD3DVECTOR{public:D3DXVECTOR3(){};D3DXVECTOR3(CONSTFLOAT*);D3DXVECTOR3(CONSTD3DVECTOR&);D3DXVECTOR3(CONSTD3DX

7、FLOAT16*);D3DXVECTOR3(FLOATx,FLOATy,FLOATz);//castingoperatorFLOAT*();operatorCONSTFLOAT*()const;//assignmentoperatorsD3DXVECTOR3&operator+=(CONSTD3DXVECTOR3&);D3DXVECTOR3&operator-=(CONSTD3DXVECTOR3&);D3DXVECTOR3&operator*=(FLOAT);D3DXVECTOR3&operator/=(FLOA

8、T);//unaryoperatorsD3DXVECTOR3operator+()const;D3DXVECTOR3operator-()const;//binaryoperatorsD3DXVECTOR3operator+(CONSTD3DXVECTOR3&)const;D3DXVECTOR3operator-(CONSTD3DXVECTOR3&)const;D3DXV

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。