摘要:
<!--#includefile="inc/conn.asp"--><SCRIPTlanguage=javascript><!--vartt='start';varii='start';functionturnit(ss,bb){if(ss.style.display=="none"){if(tt!='start')tt.style.display="none";if(ii!='start')ii.src="dian.gif&quo 阅读全文
摘要:
2.10.1灯光与材质在现实的世界里,没有光线,是什么东西也看不见的。在D3D的世界里,也是一样的。但是在D3D里有一种光线,是非常奇怪的,这种光线是没有方向,没有位置,整个世界全可以照亮的光线,它就是环境光,它其实有点像我们现实生活里的无影灯。在D3D里光线分为三种类型,分别是点光源、聚光灯和方向光。材质就是说明物体是吸收什么样颜色的光线和反射什么样颜色的光线。在现实世界里,看到各种各样的物体,各色各样的。同是太阳光照射下,看到花朵有红色的,有白色的,有黄色的,还有粉红色的。这种不同的颜色的表现,我们就说是它们的材质不同,也就是它们吸收光线和反射的光线不同。在D3D里有下面几种光线类型:ty 阅读全文
摘要:
有了上面绕着坐标轴旋转的矩阵,就可以轻松地构造我们的太阳系了。在我们太阳系中,太阳是自转的,在这个例子里要就要让太阳绕着Y轴自转。在让太阳旋转之前,就要先创建太阳这个物体,在这里我采用一个大圆球代表太阳。创建太阳圆球的程序如下:LPD3DXMESH m_pMeshSun; //太阳。D3DXMATRIX m_mSunSpin; //自转矩阵这里使用类成员变量m_pMeshSun保存太阳的三角形列表,类成员m_mSunSpin保存自转矩阵。然后调用D3DXCreateSphere函数来创建太阳,这个函数就是创建一个球体的三角形网格。它具体参数如下:HRESULT D3DXCreateSphere 阅读全文
摘要:
缩放矩阵模型比较大时,就需要把它缩小,这样就需要使用到缩放矩阵。缩放矩阵如下所示:其中的S就是缩放系数,如果要放大,就需要设置S大于0。如果要缩小,就要设置S小于1大于0。D3D里已经准备好一个设置这样缩放矩阵的函数,它就是D3DXMATRIX * D3DXMatrixScaling(D3DXMATRIX * pOut,FLOAT sx,FLOAT sy,FLOAT sz);函数的第一个参数就是返回缩放矩阵,第二个参数是沿着X轴的缩放系数,第三个参数是沿着Y轴的缩放系统,第四个是沿着Z轴的缩放系数。如果三个缩放系数都相同的,就是等比例缩放,否则就是不等比例的缩放。比如需要设置一个等比例放大两倍 阅读全文
摘要:
2.10.1矩阵变换在3D游戏里,要表达不同的东西,每样东西都在不同的位置。比如构造一个间教室,那么就需要根据黑板、讲台、座位来不同位置来放置。由于所有模型坐标都是局部坐标,都需要变换到世界坐标,才显示出正确位置。还有游戏里的很多物体是动起来的,就是位置会变化,大小会变化。比如模拟一辆小车开过马路,那么这辆车就需要水平运动起来,车轮还需要旋转起来。仔细看一下车轮,它不但作平移运动,还需要作自转运动。要表达物体在不同的位置,需要使用到矩阵。要表达物体旋转运动和平移运动,也需要使用矩阵。由n元线性方程组的系统数组成的m行n列的数表,就叫做矩阵。如下图所示:由于在三维里的坐标变换,都是线性变换,所以 阅读全文