2007/06/24 | 群聊整理之“地形管理”
类别(游戏开发) | 评论(1) | 阅读(78) | 发表于 13:01

汤锴 14:50:12
现在要做一个max的关编,第一步很简单就是能导出场景模型并且做八叉树切分,同时可以绑碰撞盒,就行了。
然后编辑界面用script做,导出就用现有的插件去修改
大河马 14:50:29
为什么八叉? 不是四叉?
汤锴 14:51:30
感觉适用性更好,也可以做八叉混合四叉
当一个节点很扁平,在Y方向上的切分没有好处时,就退化成四叉树
大河马 14:52:58
如果场景有地形高低问题,比如斜坡,那怎么处理比较合适?
heightmap可以吗?
汤锴 14:54:08
那根本不算场景管理方法,只不过是渲染地形的一种方式
大河马 14:54:18
但是也是碰撞啊
汤锴 14:54:31
确实可以很容易处理碰撞!而且进行简单的物理模拟比如多么倾斜的面就爬不上去了。
但是简单的高度图有个问题就是它的x,z和y之间是一值对应,也就是不太好做洞这样稍微复杂的地形。
大河马 14:56:54
哎。。洞只能特殊处理了吧
汤锴 14:58:09
我在手机上实践过高度图渲染地形结果很不理想
如果采用输出三角形的做法,多边形数量过多;如果采用voxel引擎,效果又很糟糕,尤其是没有打开Billinear-Filter的时候,而且不容易做6-DOF.
大河马 14:58:57
一般场景里面,多边形没那么多吧!
汤锴 14:59:48
高度图能够输出大量的三角形条带
其实在手机上作大规模室外场景可以考虑用ROAM

大河马 15:04:32
我给你看下我之前做的一个heightmap做碰撞的demo
汤锴 15:07:44
地形几何数据从哪里来的?
从高度图复原的,还是直接导出的
大河马 15:08:03
高度图复原
汤锴 15:08:18
高度图尺寸是多少?
大河马 15:08:26
33*33
汤锴 15:08:30
啊?
这么小?
大河马 15:08:34
我放大了每个地块到10倍
汤锴 15:09:20
你是地形是基于Title拼接起来的吗?
大河马 15:09:28
嗯,基于tile
汤锴 15:09:59
噢。。。那你这个截图中同屏可见面能有多少?
大河马 15:10:26
汗。。。33*33个Mesh,一个Mesh就是一个Quad
汤锴 15:15:01
33*33个Mesh。。。每个Mesh就对应高度图中一个像素???
噢,我明白了
那你每个Mesh的尺寸都一样大?
大河马 15:15:29
嗯。。。一样大。。
否则就得查找了!
所以我才觉得局限太大。。
汤锴 15:15:52
不好不好这个方法
还是用ROAM
我这里有例子,等会发给你
大河马 15:16:50
ROAM没怎么听说过,用的肯定不多吧!
汤锴 15:17:15
以前pc游戏用过,比较适合软件渲染,现在不用了因为draw call太多了

汤锴 15:10:46
FPS 12.8... 模拟器上才能跑着点速度啊,上过真机没有
大河马 15:10:56
真机只有6~8
而且很多都跑不起来。。
汤锴 15:11:07
而且还没有贴图
大河马 15:11:12
嗯。。。
汤锴 15:11:20
加了贴图速度至少慢一倍
大河马 15:11:41
没那么夸张吧!
汤锴 15:11:48
然后为了避免扭曲,对某些三角形作透视校正,速度再慢一倍
真的,不信你试试看
大河马 15:12:27
那只能在max里面建模,然后把场景控制在300个面左右
汤锴 15:12:32
我们以前在手机上测BSP场景,单色填充一直跑64帧
打开贴图立刻掉到21帧,当然我们是用了透视校正的

大河马 15:13:33
FPS最低多少可以接受的啊?我们Java 2D的游戏,7~8fps就可以了!
汤锴 15:13:41
我觉得12FPS吧,再低操作感觉很差
一般我们都要求最终游戏在16FPS以上
大河马 15:14:51
你是native游戏,当然要求很高了!
汤锴 15:24:16
所以说高度图只不过是一种渲染地形的方法,并不是场景管理方法,你还是要寻找一种场景管理算法,比如说四叉树

0

评论Comments

日志分类
首页[118]
游戏开发[40]
绝命都市[6]
文章[47]
朝花夕拾[10]
诗歌[6]
相簿[9]