3D游戏引擎设计与实现(18)

    这几天已经封装摄像机类,就可以自由地在地图里行走,目前只是添加了5个自由度的摄像机系统。可以向前,向后,向左,向右,向上,向下,X轴旋转,Y轴旋转等5个自由度。基本上,就用这个五个自由度,就可以在3D世界里漫游了。如果再添加碰撞检测,就可以让这个摄像机不会穿墙而过了。    在这里发现,如果没有加载纹理之前,显示线框图,是一个很好的调试方法。    后面接着要写的内容就是怎么样加载纹理,怎...
阅读(3873) 评论(4)

3D游戏引擎设计与实现(17)

    由于有人不断跟我要什么资料,其实我也没有什么资料,就只有要有网络就行了。然后上GOOGLE一查,就是最好的资料。    今天,我就把我所有连接发布出来,大家就好好看看了,资料就在那里,你的3D是否成功,就看你的理解水平和实践了。希望大家共同努力,打造最成功的3D产业商品出来,一连几天深圳开了一个文博会,但里面最成功的,要数报业集团了,当然最引人的也就是深圳大芬村的油画村,起先,我怎么也想不...
阅读(4980) 评论(0)

3D游戏引擎设计与实现(16)

    这几天都在读取BSP文件,当然读取已经不成为问题了,虽然这种文件格式非常难读。一个索引连接着一个索引的。现在数据已经读取进来,但要显示它到D3D里,还是有问题的。因为它是为OPENGL设计的,所以它的坐标会不同的。怎么样修改才能合适地渲染到D3D里呢?我还在考虑中。    BSP文件是一个平面一个平面保存的,这种平面有可能是三角形,也可能是四边形,也可能是其它多边形。但D3D里只支持三角形...
阅读(3083) 评论(0)

3D游戏引擎设计与实现(15)

    今天在写游戏逻辑部份的代码,主要实现游戏逻辑的实现,比如世界的场境是怎么样渲染,当然这些都是按照地图文件里定义,根据BSP树保存着的信息,就可以渲染场境出来.这样就可把需要的模型加载进来,每当玩家改变输入装态时,就会作出来不同的响应.比如行走系统,就是当玩家按下不同的方向时,就可以按着一定的速度向前移动,这里的移动,就是通过向量相加实现.当改变方向,就是绕着不同的轴进行旋转.    同时,...
阅读(2785) 评论(0)

3D游戏引擎设计与实现(14)

    今天没有写什么代码,主要看看地势生成算法。这个算法叫做Real-Time Optimal Adapting Mesh。它的思想就利用等边直角三角形可以无限分成两个等边直角三角形来表示地势的细节程度。如果要表示高细节的地表,就可以用分解成更多的直角三角形,如果表示不要求那么多的细节,着重于在速度,就可以分解三等边直角三角形少一点。这个算法就称为ROAM算法。...
阅读(2880) 评论(0)

3D游戏引擎设计与实现(13)

3D游戏引擎设计与实现(13)       继续写读取地图文件格式的代码,因为这里保存了很多信息。又没有什么好文档,只好慢慢来找出BSP文件有用的信息,比如顶点,纹理坐标等。先读取显示场境里所有顶点数扰,平面方程数据,多边形的边数据,然后就可以构造自己的世界里的平面了。目前还没有加载纹理进来。Coding.........
阅读(3187) 评论(0)

3D游戏引擎设计与实现(12)

3D游戏引擎设计与实现(12)       游戏的地图文件格式是非常重要的一种格式,设计得好与坏,都关系到读写和渲染速度。如果保存的信息过少,就会导致渲染时花费大量的时间在计算。就目前主流的3D游戏,都会用这种思想:就是能预先计算的东西,就要先计好,不是在游戏中实现计算。比如用BSP树来保存冲突检测,保存可见性等,都是为了提高渲染速度。       在CS的BSP文件格式中也是这样的,先计...
阅读(3503) 评论(0)

3D游戏引擎设计与实现(11)

3D游戏引擎设计与实现(11)       已经到开始考虑怎么样去渲染场境,因为游戏里主要部份就是由场境组成,然后再添加各种人物在里面,因此就要思考怎么样保存场境,3D引擎怎么样加载它。现在为了用到CS的资源,当然要用它的地图文件,才可以更加方面。到目前,就决定使用BSP的地图文件格式,这种文件格式比较复杂,保存的数据也比较多。       接着下来的,就是实现怎么样读取BSP文件格式,然...
阅读(4080) 评论(0)

3D游戏引擎设计与实现(10)

    经这几天的努力,已经把UI,D3D设备管理完成了,接着要开始写其它部份。要写哪部份才更好呢?我想肯定是先考虑怎么样渲染世界里所有的物品。要渲染物品得确定使用什么模型文件。现在可以选择的有好几种格式,第一种最方便的,应是用X的文件格式,因为D3D已经把它完全封装好。第二种是使用MDL文件格式,就是HL的格式。第三种就是QUAKE3使用MD3的格式。其实每种格式都有自己的优点和缺点,就看着自己...
阅读(3317) 评论(1)

3D游戏引擎设计与实现(9)

        昨天还是进行窗口模式与全屏模式相互切换的代码工作,还有调试。不断地写LOG,不断跟踪,排除了一个又一个BUG后,总算可以自由地切换窗口模式与全屏模式。在这个过程中,不知道死了多少次VC,还好Windows2000的死进程管理能力还不错,还是没有要按下电源的键。当从全屏模式切换到窗口模式时,一定不要进行单步调试,否则就要死在那里。不过也没有办法,死几回还是需要的。这样慢慢地改进,...
阅读(3190) 评论(5)

3D游戏引擎设计与实现(8)

3D游戏引擎设计与实现(8)       昨天主要进行窗口模式切换到全屏模式的编写,这里的代码也非常的多,很多地方都要注意,很多细节都要处理,否则就可能程序死在那里,或者全屏模式时转换不到窗口模式,又或者当用户改变屏幕分辩率,这时如果没有改变窗口的模式的话,又会出现错误。还有一种情况,当切换失败时,又要尽量回退到原来显示参数的模式等等。这个功能实现,几乎就把DX的初始化功能基本上完成了。当然,...
阅读(3141) 评论(2)

华为员工的感慨:"我要在坂田基地裸奔!" ?

前段时间有两本写华为的书卖得很火,我从没有想过去读。我从1996年1月至2003年3月在华为工作了7年多,相信自己了解华为,没有必要去听别人怎么说。在外面打拼了一年多,2004年4月,我又回到了华为,听说现在重回华为已经成为一股潮流,一不小心赶上了这个潮流,我想写写我的心情和感受,作为这个潮流的一个纪念。    1996年的我还在北京邮电大学读研究生,偶然进入华为北京研究所做毕业实习。在华为开...
阅读(7162) 评论(5)

3D游戏引擎设计与实现(7)

3D游戏引擎设计与实现(7)       昨天在调试代码时,发现大量占用CPU资源,不知那里出什么问题,这个可以真是无从下手,正在苦恼时,突现发现,为什么不用帧速率来看看显示了多少帧。接着下来就添加帧速率上去,在调试时输出,发现每秒钟只有2到5帧,为什么会这么少的呢?又要从哪里下手去找出为什么这么慢的原因。只能用最笨的办法了,首先查看设备类型,因为它决定主要因素。接着去创建D3D设备的函数里调...
阅读(3242) 评论(2)

3D游戏引擎设计与实现(6)

今天又有一点进展,主要实现UI的消息处理。因为每个UI界面上的控件,比如按钮都自己实现消息处理。鼠标消息、键盘消息等等,非常之多。所以目前的工作主要在GameUI模块,目前实现的渐渐显示出来效果,还是不大好看,等以后有时间再重新考虑改进。...
阅读(3186) 评论(0)

3D游戏引擎设计与实现(5)

        今天终于实现了UI的显示,但还是比较初步的,已经可以显示按钮在窗口上,还没有添加事件响应,不过也会很快实现的.到此,基本上UI方面没有什么大的问题,还要解决输入法方面问题,因为在游戏中可能要输入中文,让所有游戏玩家可以相互聊天.        接着下来,就是全部写UI部份,然后再写好窗口模式和全屏模式的相互转换,还要检查设备是否丢失等等.在写查找3D设备显示模式时的代码,还是非常的...
阅读(3384) 评论(1)
21条 共2页1 2 下一页 尾页
    个人资料
    • 访问:5574822次
    • 积分:72912
    • 等级:
    • 排名:第25名
    • 原创:1584篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2082条
    文章存档
    最新评论