09 2006 档案
摘要:昨天被人问到我的理想,蓦然感到茫然.我能回答什么呢?我不想说些空洞的话,只能说没有理想.或者是我错误的认为理想是崇高的,不容玷污的;或者是我还停留在中学时代的思维;又或者我或许真的就是没有理想的. 睡觉时候辗转反侧无法入眠,满脑子都是对这个问题的思考,后来胖子说理想大家都是有的,只是一直在变化: 上小学时候大家的理想是当老师啊,科学家什么的. 中学后理想或许就比较显示了,比如考上好大学. 大学之后就是找到好的工作. 然后,……,我就不清楚了.我现在想想,自己正是在大学迷失了,处在一个混沌的状态,目前差不多就是这个感觉.理想?到底是怎么样的呢?它应该是伟大的么?应该是让人景仰的么?又或者它仅仅.
阅读全文
摘要:打造免费的游戏开发环境目前,Windows用户占了全大多数,因此开发的游戏运行环境,就肯定是Windows了。而在windows开发中,开发工具的选择,肯定是微软的比较好。而游戏开发平台,最好的又是C++了,因为Windows和DirectX组件的开发,就是基于C和C++的。好了,现在就教你打造一个使用免费的微软VS2005中的VC++。第一步:下载Visual C++ 2005 Express Edition到微软的网站下载,它的大小有400多M。http://go.microsoft.com/fwlink/?linkid=57034然后再去看这个网页,它详细地指导你怎么样安装平台SDK,然
阅读全文
摘要:加载复杂网格模型上面都是简单的网格例子,并且只能作为演示作用,没有多少实用价值,下面来加载一个更复杂的网格模型。在我们玩过的游戏里,绝大多数都有室内场境的地方,比如到武器店里买东西,就需要有一个室内场境。在我们最常见的房子,大多数都是长方形的,也就是有6个面的立方体,而在这六个面贴上纹理,就是室内环境了。由于我没有美工,只能拿现成的网格模型来加载显示,模型文件放在目录G:/MM3D/Engine/bin/models里,其中room.x是网格模型文件,DoorDiff.dds、FireplaceDiff.dds、oldwood.dds、wallpaper.dds都是纹理图片。实现的效果图如下:
阅读全文
摘要:加载网格模型文件在游戏里,最常的东西是什么呢?肯定是各种怪物和场境。比如在《传奇世界》就有很多猪和青铜兽。在3D游戏里,要显示一个地图,就需要加载网格模型文件来显示。比如像《半条命》里的练习场,就是一个3D模型文件。因此,游戏要显示的东西,大多是从文件里加载模型来显示的。游戏显示的模型都是比较复杂的,比前面所用到的三角形、立方体等模型,要复杂很多。如果每个模型都是用程序来实时创建,速度也是很慢的。目前大多数模型是使用建模型软件来创建,然后保存为文件,再程序来加载显示。比较流行的建模软件有3DS MAX、Maya等,美工就可以使用它们来创建地图中的场境、怪物的模型。在开发一个游戏里,美工的人员往
阅读全文
摘要:突然觉得,往事不堪回首.呵呵,经常跟朋友说不要提往事,不要提往事,但是好像我自己还是在提的.事情的发展总是在预料之外又在预料之内,偶然中的必然,这是那个鸟人说得呢?说得似乎很对嘛.以这些"诗"放在这里,供我将来那天拿来看看想想.突然想到好久没有更新我的网络日记了,等下去更新下.呵呵,崭新的我? 爱你 悄悄地 你来到我的身旁 嗅到沁人的芬芳 掀起 心中一层涛浪 渐渐地 爱你的心无法掩藏 听到心碎的叫嚷 涌出 眼中一行泪汪 静静地 爱你的心不能然恍 看到木然的飞扬 带走 脸上一路流淌 匆匆地 你的远离让我迷惘 再触及不到你的脸庞 修补 心灵一到创伤 轻轻地 为你送上 我一生的坚
阅读全文
摘要:飞扬 如果 我是一朵雪花 要在漫天中飞扬 迷惘中我迷失了方向 飞扬 飞扬 飞扬 如果 我是一颗蒲公英 要在漫天中飞扬 迷惘中我迷失了方向 飞扬 飞扬 飞扬 如果 我是一片树页 要在漫天中飞扬 迷惘中我迷失了方向 飞扬 飞扬 飞扬 突然 看到了你 像是 沙漠中的一片绿洲 大海中的一个小岛 飞扬 飞扬 飞扬 飞扬 飞扬 飞扬 悄悄地 落在你的发梢 落在你的肩头 落在你的衣角
阅读全文
摘要:在D3D里,纹理的功能是非常强大的,还有很多功能,比如纹理环绕、纹理动画、纹理重复、多重纹理、纹理溶合、立方体包围盒纹理、光线纹理、纹理管理等等。在这里先学习简单的纹理,并且灵活地使用它,后面再慢慢地深入去学习。下面就详细地解释第一个纹理例子。实现的纹理如下图所示:从上面图片看到,纹理贴到两个三角形上面,就太像木板了。因此纹理在实现真实性起到很大的作用,目前的游戏都是大量地使用纹理贴图,来达到虚拟现实世界。要显示一个简单的纹理,要经历下面的步骤:1) 创建纹理的顶点格式前面很多例子使用的顶点格式,都是没有纹理坐标的,所以要在顶点结构里加入纹理坐标。如下面所示://定义顶点缓冲区里用到的顶点格式
阅读全文
摘要:纹理的使用纹理是什么呢?在游戏里,又有什么样的作用呢?肯定有很多疑问在你的脑海里。在我们生活的世界里,丰富多彩环境,要是全部使用实时绘制,肯定是很费时间,并且目前的计算机,还达不到这种水平。既然计算机的有限计算能力,又想显示丰富多彩世界,那么只好使用纹理。比如要显示一个房子里大理石地板,就可以直接使用大理石图片,往地面一贴,就像真的大理石一样了。纹理提高了生成图像的真实性,呈现出丰富亮丽风境。在我们的家具里,由于我们喜欢有木纹的家具,由于木板的缺少,很多地方都是采用组合板,这种板并没有木纹,所以生产厂家就采用贴图的方法,把加工好的木纹板往做好的家具上一贴,就像真的木板一样了。纹理坐标在D3D里
阅读全文
摘要:聚光灯像汽车的远光灯发出的灯光,就是聚光灯。它有位置、方向和颜色。下面的就是聚光的例子显示的效果图:聚光灯比点光源多了方向,还多了内光圈和外光圈了的角度。因此,初始化灯光的结构时,就需要设置它们才能让聚光灯有效里显示出来。程序初始化如下:////初始化灯光。//蔡军生 2006/09/03//void CCAISpotLight::InitLight(void){ // ZeroMemory( &m_meshMaterialFloor, sizeof(D3DMATERIAL9) ); m_meshMaterialFloor.Diffuse.r = 1.0f; m_meshMateria
阅读全文
摘要:<!--#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列的数表,就叫做矩阵。如下图所示:由于在三维里的坐标变换,都是线性变换,所以
阅读全文