没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
GameRes 游戏开发资源网 http://www.gameres.com
地形制作全攻略
作者:程东哲
前言.........................................................................................................................3
零.地形简介.........................................................................................................5
一.地形生成算法.................................................................................................6
1 . Fault Formation .......................................................................................8
2 . Midpoint Displacement ..........................................................................13
二.小纹理生成大地形纹理...............................................................................18
1 .地形纹理介绍 ..........................................................................................18
2 .小纹理插值生成大纹理。 ......................................................................21
3 .添加细节纹理 ..........................................................................................29
4 .添加光照贴图 ..........................................................................................32
三.四叉树
LOD
渲染地形 ..........................................................................41
1 . LOD
介绍 ................................................................................................41
2 . 地形
LOD
介绍 ........................................................................................41
3 . 地形四叉树
LOD
详细介绍 ....................................................................42
4 .顶点管理器 ..............................................................................................59
5 .渲染地形 ..................................................................................................62
四.相机剪裁地形...............................................................................................74
五.天空盒...........................................................................................................86
六.简单海水.......................................................................................................91
七.广告牌...........................................................................................................92
八.光晕...............................................................................................................97
九.地形场景物体与
BHV ...............................................................................105
9 . 1 构造四叉树
BHV ...............................................................................106
9 . 2
渲染四叉树
BHV ................................................................................113
十.阴影体.........................................................................................................115
10 . 1
介绍模板缓冲 ...................................................................................115
10 . 2
构造阴影体 .......................................................................................117
10 . 3 渲染阴影体 .......................................................................................123
十一.碰撞.........................................................................................................128
11 . 1 三种碰撞基元算法........................................................................128
11 . 2
场景中的碰撞处理 ...........................................................................134
11 . 3
地形跟踪算法 ...................................................................................140
十二.无限地形.................................................................................................140
前言
这个前言是我最后写的,我尽我最大努力,把这个地形制作所有细节都讲
了,我想大家很清楚,写这种技术文章,有些地方很难用语言表达清楚,我不
得做很多说明图片,又添加程序,这样尽量把晦涩的地方描述明白。
我想我很少再有时间和精力再写这么长的文章了,作为一个游戏程序员要
学的永远是那么多,物理,图形,人工智能等等吧!写这么长的文章,花了我
2 个多星期的时间,只希望大家能给我肯定。
我开始编程时,就爱上了程序,我现在最大梦想,就是做一个游戏框架师 ,
参与设计引擎框架,设计游戏框架。本人从小就玩电子游戏,经常被我妈从游
戏厅里抓出来(相当初拳皇牛的要命,CS 都打疯了)但这还是无法阻挡我对游
戏 的 欲 望 , 现 在 我 每 天 用 PSP 都 在 玩 游 戏 , 以 后 有 钱 了 , 准 备 买
XBOX360,PS3。
由于今年 10 月我就要找工作了,7 月 20 号开始我准备学 SHADER 了,我
给出的执行文件可以说是地形 DEMO 1.0 版本,等我找完工作,我可能再添加
粒子引擎。我只是给大家一个 DEMO,先不放出源代码,希望大家见谅,等到
我找完工作后,我一定把源程序毫不保留的放出来,在这之前不要说我吝啬,
一个好的工作是给我的最大肯定。
这个文章几乎涉及到一个室外游戏中用到所有技术,程序实现是用 D3D
9.0 制作,没有用任何 SHADER,因为我的机器很烂,是 2003 年 12 月 24 日买
的联想笔记本,9999 元,CPU 迅池一代 1.4(相当于 P4 2.0),显卡集成的,没
有任何 SHADER 功能,显存还是很内存共用的。引擎制作花了我半年时间,地
形制作花了我 2 个多月,这是个漫长的过程,引擎我改了又改,到最后我还是
认为有个地方不满意,但我实在不想改了,有些烦了,没有技术含量,只是体
力活。
写完这个文章后,我只检查了一遍,难免有些错误。但技术上,我认为绝
对没有错误,因为我把它实现了,我有证据,说明这么做就是对的。
如果有不明白的或者有书写错误的,或者想和我讨论问题。请大家和我联
系。
QQ:79134054(请注明:编程好友。否则我不加的)
最后感谢我的导师他教会了我怎么学习,授人于鱼,不如授人于渔。
吉林大学 2006 级研究生
图形与图象处理专业
程东哲(阿哲 VS 自己)
2008 年 7 月 13 日
一想到我要花很上时间我把实现过的详细写出来,我就有些厌倦,把这些
字打来打去的,是很大的工作量,但又一想到中国的游戏行业,中国制作游戏
的热血青年,我还是坚持把这些写了出来,让他们少走些弯路。我现在才明白
一个好的程序员为什么不愿意写文档,写注释了,他们实在没有时间重复这些
没有意思的事,因为如果要是有一天真的都忘了,就算有文档,也要花好长时
间才能看懂自己写的代码,但实现过程我想自己永远也不会忘记的。
我之所以写这篇文章,一个原因,以后我有一天写关于游戏引擎方面的书,
我有些参考,毕竟当年做过这个,并写了出来。再一个原因,我的实现和现在
世面上可以见到的代码不一样,要么他们写的说明不是很详细,要么就根本只
有程序,连一点点注释都没有。
编程确实是体力和脑力,耐力的挑战,有时一个简单的理论,你要花好长
时间才可以实现。确实理论和现实还是有差距的。我这个地形是用 Dricte3D 做
的四叉树 LOD,加了很多别的室外场景。本来还想实现一个 BSP 和 OCTREE,
分别用它们做渲染和碰撞,如果可能的话,是找完工作后是事情,但现在没时
间了。今年 8 月份就要学 SHADER 了,为找一个好工作做最后的努力。
说实话,我现在只能做 DEMO,因为我是一个人在战斗,没有志同道合的
人和我并肩做战。真正的游戏是希望有一个场景编辑器来帮助编辑的,这个工
作量不是一个人可以完成的,为了减少,要么硬编码,要么使用简单的脚本。
我想做为一个还没有走出学生时代的在校学生,我做到这样已经很不容易了,
我现在太需要外界的刺激,因为学校太封闭了,根本不能完成自己的使命,在
学校只是一种理论积累,我想我的基础应该达到我想要的程度。
上面发了一堆牢骚,闲话少说了,开始写怎么编写地形。我这里的很多知
识都是来自《FOCUS ON 3D TERRIAN》这本书,但我不得不说,这本书有些
关键地方解释太不详细,作者让你去读他参考的论文,而且是用 OPGL 实现的,
OPGL 的渲染管理和 D3D 是不同的,所以渲染地形过程还是有很大差别,而且
还改写很多技术细节,后面的光晕,阴影体,地形物体,碰撞,无限地形,都
是我自己写的。
我今天准备详细介绍每一个细节,争取让所以看了这篇文章的人都能看明
白,基于四叉树 LOD 地形渲染究竟是怎么回事。
下载演示程序
我要介绍的内容是:
零.地形简介
一.2 个地形生成算法
二.地形上的纹理
三.四叉树 LOD 渲染地形
四.相机剪裁地形
五.天空盒
六.简单海水
七.广告牌
八.光晕
九.地形场景物体与 BVH
十.阴影体
十一.碰撞
十二.无限地形
一个完整地形渲染也就需要这么多东西,看起来很多,但确实很多,也不是很
容易。
零.地形简介
这一部分是我后加进来的,我想把读者当成对地形一点没有了解的人
Andre LaMothe 是我最佩服的游戏编程大师,他作为大师一点也不假,他的书
写的诙谐幽默,把读者完全当做傻子一样,写的很详细。中国翻译人员也没有
辜负他,他的两本书都翻译的很棒!
我想继承大师的风格,把我的文章写的深入浅出,诙谐幽默。
如果你对 3D 没有什么概念的话,建议还是别看这里。等你对 3D 编程有了
解,你在看这个。
现在就开始了。计算机模拟地形,还是没有逃离基于顶点的三角形,当然
现在基本所有的 3D 都是基于顶点三角形的。
图 1
看上图(俯视),所有绿色的都顶点,假设些顶点都在一个平面上,当然
这里只有顶点,还没有连三角形(红色的线,只是为了大家看方便),连接三
角形有很多方法,下面就是一种方法。
图
2
连接三角形有多方法。当然真正的地形就是把顶点高度都相对降低和提升,
我给的例子是一个平地。一但降低和提升后,就能出来地形,当然你别瞎提升
和降低,弄得个地形很诡异,我们要得是很符合实际的地形,你做一个星球大
战之类太空游戏,地形诡异点也没问题,因为这个地形不是地球上的。
下面我就介绍 2 个地形生成算法,来创造符合实际的地形,也就是看起来
比较真实的地形顶点数据。
一.地形生成算法
其实地形生成算法有很多,在《FOCUS ON 3D TERRIAN》介绍 2 种,我这
里也主要介绍这 2 种,当然我还见过用噪声方法来生成云纹理图来作为地形的
高程图。好,现在是介绍高程图的时候了,高程图就是一张图片,它的每一个
象素值来表示相对顶点高度(这里说“相对”的意思是,一般高程图只用 256 色 8
位图来表示,即使用 24 位表示,RGB 值也都一样的。所以高度只能是 0——
255,真实地形顶点高度能是 0——255 吗?不可能,所以说相对。当你想调节
到真实数据时,可以用一个高度缩放因子来乘以这个相对高度,达到你想要的
真实高度范围)
剩余63页未读,继续阅读
资源评论
- yunfly1632022-03-04感谢~找了好久。非常感谢
- sdnokla2012-12-25值得学习啊 老兄费了不少心思吧 这分 值
- id_95272012-08-15这位老兄简直如神人一般,是学习计算机编程人的楷模啊,文章很幽默诙谐,讲的directx9.0编程也很好
xsyxt
- 粉丝: 16
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功