- 博客(21)
- 资源 (44)
- 收藏
- 关注
原创 3D游戏引擎设计与实现(18)
这几天已经封装摄像机类,就可以自由地在地图里行走,目前只是添加了5个自由度的摄像机系统。可以向前,向后,向左,向右,向上,向下,X轴旋转,Y轴旋转等5个自由度。基本上,就用这个五个自由度,就可以在3D世界里漫游了。如果再添加碰撞检测,就可以让这个摄像机不会穿墙而过了。 在这里发现,如果没有加载纹理之前,显示线框图,是一个很好的调试方法。 后面接着要写的内容就是怎么样加载纹理,怎
2004-11-29 13:11:00 4554 4
原创 3D游戏引擎设计与实现(17)
由于有人不断跟我要什么资料,其实我也没有什么资料,就只有要有网络就行了。然后上GOOGLE一查,就是最好的资料。 今天,我就把我所有连接发布出来,大家就好好看看了,资料就在那里,你的3D是否成功,就看你的理解水平和实践了。希望大家共同努力,打造最成功的3D产业商品出来,一连几天深圳开了一个文博会,但里面最成功的,要数报业集团了,当然最引人的也就是深圳大芬村的油画村,起先,我怎么也想不
2004-11-23 16:15:00 5948
原创 3D游戏引擎设计与实现(16)
这几天都在读取BSP文件,当然读取已经不成为问题了,虽然这种文件格式非常难读。一个索引连接着一个索引的。现在数据已经读取进来,但要显示它到D3D里,还是有问题的。因为它是为OPENGL设计的,所以它的坐标会不同的。怎么样修改才能合适地渲染到D3D里呢?我还在考虑中。 BSP文件是一个平面一个平面保存的,这种平面有可能是三角形,也可能是四边形,也可能是其它多边形。但D3D里只支持三角形
2004-11-22 13:52:00 3752
原创 3D游戏引擎设计与实现(15)
今天在写游戏逻辑部份的代码,主要实现游戏逻辑的实现,比如世界的场境是怎么样渲染,当然这些都是按照地图文件里定义,根据BSP树保存着的信息,就可以渲染场境出来.这样就可把需要的模型加载进来,每当玩家改变输入装态时,就会作出来不同的响应.比如行走系统,就是当玩家按下不同的方向时,就可以按着一定的速度向前移动,这里的移动,就是通过向量相加实现.当改变方向,就是绕着不同的轴进行旋转. 同时,
2004-11-20 23:45:00 3330
原创 3D游戏引擎设计与实现(14)
今天没有写什么代码,主要看看地势生成算法。这个算法叫做Real-Time Optimal Adapting Mesh。它的思想就利用等边直角三角形可以无限分成两个等边直角三角形来表示地势的细节程度。如果要表示高细节的地表,就可以用分解成更多的直角三角形,如果表示不要求那么多的细节,着重于在速度,就可以分解三等边直角三角形少一点。这个算法就称为ROAM算法。
2004-11-19 14:15:00 3322
原创 3D游戏引擎设计与实现(13)
3D游戏引擎设计与实现(13) 继续写读取地图文件格式的代码,因为这里保存了很多信息。又没有什么好文档,只好慢慢来找出BSP文件有用的信息,比如顶点,纹理坐标等。先读取显示场境里所有顶点数扰,平面方程数据,多边形的边数据,然后就可以构造自己的世界里的平面了。目前还没有加载纹理进来。Coding......
2004-11-17 19:15:00 3689
原创 3D游戏引擎设计与实现(12)
3D游戏引擎设计与实现(12) 游戏的地图文件格式是非常重要的一种格式,设计得好与坏,都关系到读写和渲染速度。如果保存的信息过少,就会导致渲染时花费大量的时间在计算。就目前主流的3D游戏,都会用这种思想:就是能预先计算的东西,就要先计好,不是在游戏中实现计算。比如用BSP树来保存冲突检测,保存可见性等,都是为了提高渲染速度。 在CS的BSP文件格式中也是这样的,先计
2004-11-16 17:21:00 4075
原创 3D游戏引擎设计与实现(11)
3D游戏引擎设计与实现(11) 已经到开始考虑怎么样去渲染场境,因为游戏里主要部份就是由场境组成,然后再添加各种人物在里面,因此就要思考怎么样保存场境,3D引擎怎么样加载它。现在为了用到CS的资源,当然要用它的地图文件,才可以更加方面。到目前,就决定使用BSP的地图文件格式,这种文件格式比较复杂,保存的数据也比较多。 接着下来的,就是实现怎么样读取BSP文件格式,然
2004-11-15 13:30:00 4592
原创 3D游戏引擎设计与实现(10)
经这几天的努力,已经把UI,D3D设备管理完成了,接着要开始写其它部份。要写哪部份才更好呢?我想肯定是先考虑怎么样渲染世界里所有的物品。要渲染物品得确定使用什么模型文件。现在可以选择的有好几种格式,第一种最方便的,应是用X的文件格式,因为D3D已经把它完全封装好。第二种是使用MDL文件格式,就是HL的格式。第三种就是QUAKE3使用MD3的格式。其实每种格式都有自己的优点和缺点,就看着自己
2004-11-12 13:27:00 3953 1
原创 3D游戏引擎设计与实现(9)
昨天还是进行窗口模式与全屏模式相互切换的代码工作,还有调试。不断地写LOG,不断跟踪,排除了一个又一个BUG后,总算可以自由地切换窗口模式与全屏模式。在这个过程中,不知道死了多少次VC,还好Windows2000的死进程管理能力还不错,还是没有要按下电源的键。当从全屏模式切换到窗口模式时,一定不要进行单步调试,否则就要死在那里。不过也没有办法,死几回还是需要的。这样慢慢地改进,
2004-11-11 14:37:00 3807 5
原创 3D游戏引擎设计与实现(8)
3D游戏引擎设计与实现(8) 昨天主要进行窗口模式切换到全屏模式的编写,这里的代码也非常的多,很多地方都要注意,很多细节都要处理,否则就可能程序死在那里,或者全屏模式时转换不到窗口模式,又或者当用户改变屏幕分辩率,这时如果没有改变窗口的模式的话,又会出现错误。还有一种情况,当切换失败时,又要尽量回退到原来显示参数的模式等等。这个功能实现,几乎就把DX的初始化功能基本上完成了。当然,
2004-11-10 13:10:00 3679 2
转载 华为员工的感慨:"我要在坂田基地裸奔!" ?
前段时间有两本写华为的书卖得很火,我从没有想过去读。我从1996年1月至2003年3月在华为工作了7年多,相信自己了解华为,没有必要去听别人怎么说。在外面打拼了一年多,2004年4月,我又回到了华为,听说现在重回华为已经成为一股潮流,一不小心赶上了这个潮流,我想写写我的心情和感受,作为这个潮流的一个纪念。 1996年的我还在北京邮电大学读研究生,偶然进入华为北京研究所做毕业实习。在华为开
2004-11-09 17:40:00 10456 3
原创 3D游戏引擎设计与实现(7)
3D游戏引擎设计与实现(7) 昨天在调试代码时,发现大量占用CPU资源,不知那里出什么问题,这个可以真是无从下手,正在苦恼时,突现发现,为什么不用帧速率来看看显示了多少帧。接着下来就添加帧速率上去,在调试时输出,发现每秒钟只有2到5帧,为什么会这么少的呢?又要从哪里下手去找出为什么这么慢的原因。只能用最笨的办法了,首先查看设备类型,因为它决定主要因素。接着去创建D3D设备的函数里调
2004-11-09 09:37:00 3747 2
原创 3D游戏引擎设计与实现(6)
今天又有一点进展,主要实现UI的消息处理。因为每个UI界面上的控件,比如按钮都自己实现消息处理。鼠标消息、键盘消息等等,非常之多。所以目前的工作主要在GameUI模块,目前实现的渐渐显示出来效果,还是不大好看,等以后有时间再重新考虑改进。
2004-11-08 13:51:00 3696
原创 3D游戏引擎设计与实现(5)
今天终于实现了UI的显示,但还是比较初步的,已经可以显示按钮在窗口上,还没有添加事件响应,不过也会很快实现的.到此,基本上UI方面没有什么大的问题,还要解决输入法方面问题,因为在游戏中可能要输入中文,让所有游戏玩家可以相互聊天. 接着下来,就是全部写UI部份,然后再写好窗口模式和全屏模式的相互转换,还要检查设备是否丢失等等.在写查找3D设备显示模式时的代码,还是非常的
2004-11-07 14:36:00 3928
原创 3D游戏引擎设计与实现(4)
已经把每个DLL的架构已经搞好,还把接口也定义了相应部份,目前这个程序已经可以运行,那么怎么样进行下一步设计呢?我是先把所有消息循环写好,然后创建窗口,就基于写好主体程序,接着就要写相应DirectX初始化部份,就是要写MM3DRenderDX9.dll模块.就是用它来封装所有DX接口,并提供给引擎管理模块使用,当然,还要给UI部份使用.接着下来,就是实现UI部份DLL.它是通纹理来实现一个3D对
2004-11-06 14:53:00 3755
原创 3D游戏引擎设计与实现(3)
3D游戏引擎设计与实现(3) 经过几天编写,3D游戏引擎的架构代码大体架构已经搭好。 下面来每个模块说明:l 加载程序Engine/MM3DMain.exel DLL管理模块Engine/bin/MM3DRun.dlll 引擎管理模块Engine/bin/MM3DEngine.dlll
2004-11-05 13:34:00 4784
原创 今天发现一个BUG
今天在改旧的代码时,发现了别人以前犯的一个BUG。就是两个对象是不能用memcpy进行拷贝的,因此要一定要用重载赋值操作符,这样才不会出错,否则就会影响到其它对象中的数据。工作了一天,才发现这个BUG。真是不值:(。如下面的例子是不能用的:CObject a;CObject b;memcpy(&a,&b,sizeof(CObject));就是这样会出错的。
2004-11-04 18:01:00 3114 4
原创 为什么上海盛大能成功?(5)
5. 营销变革目前中国网络游戏营运商,大多数选择三个渠道进行营销:传统的游戏软件分销渠道、网络直销以及网吧点卡直销。因网络游戏也是近几年才发展起来,因此营运商在渠道方面建设,可以说是一穷二白的,跟其它销售商也没有什么默契的配合过,但为什么盛大能在这么短时间内迅速积累大量用户呢?盛大又使用了什么高招数能吸引众多游戏玩家? 盛大很久之前就跟传统的软件分销商“育碧软件合作”,但盛大
2004-11-03 13:19:00 3179 6
原创 3D游戏引擎设计与实现(2)
3D游戏引擎设计与实现(2) 经过几天萌思苦想,总算又设计3D游戏引擎的架构细节部份。原来说到要用到像COM组件的DLL实现,因此怎么样把游戏公共部份写到一起,变化部份写到一起,这样就能达到源程序重用,也可以简少维护工作。同时又把不同的功能模块尽量分开,把每个模块变成单一的功能,这样就可以复杂性降到最低了。 目前大体分为:加载程序,DLL管理模块,引擎管理模块,UI
2004-11-02 13:33:00 4769 2
原创 为什么上海盛大能成功?(4)
4. 游戏来源事实上在盛大与传奇的开发商Actoz及Wemade发生纠纷事件之前,盛大就意识到单一的游戏来源,肯定不行,是一个致命硬伤,而且玩家的口味还是会随着时间而改变。盛大为解决此困境,不断地寻找新的游戏来源,尤其是当盛大传奇为其带来那么丰厚的利润之下,盛大担心的情况也就是韩国的开发商会更换代理权的情形会发生。 盛大增加游戏来源的动作相当早,2001年11月“传奇”才正式
2004-11-01 13:24:00 3340 4
python抓取天气并分析 实例源码
2017-08-28
书《深度学习》
2017-03-13
国产8051模拟器
2016-09-10
tinyxml2配套源码
2016-06-27
selenium的浏览器驱动
2016-06-14
开源鸿蒙4.0不能进入桌面的补丁
2024-03-17
开源鸿蒙 4.0 RK3566开发板配置
2024-03-17
svm_hog_data.rar
2020-03-02
实现numpy的C++库扩展
2019-11-24
python web py入门配套源代码
2018-02-23
webpy演示例子1
2018-02-21
胶囊模型的代码
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人