最近做了个Geomipmap的LOD地形,加上实现LOD用的逻辑时间,渲染帧数FPS跟静态地形真的没啥差别。。甚至fps还更低。。。。
转载自:http://www.sineysoft.com/blog/post/Terrain_lod.html
今天在qq上和网友聊天交流,发现大家普遍比较关注lod,特别是动态减面的lod,对于刚开始接触3D图形的同学普遍认为LOD很牛,很有必要,对于动态减面得LOD算法更是趋之若骛,其实不然,特别是针对地形(Terrain)的LOD必要性不是很大.
模型lod(静态)有必要,动态很费,地形lod没有必要(有静态也无所谓),因为地形在现代显卡里渲染很快,基本没有rs的切换.
与其考虑地形LOD,不如考虑地形得遮挡剔除,这方面的意义远比LOD大,我们敬仰的WOW也是这样干得.
关于地形遮挡剔除的算法,可以参考我之前的博客,有详细的算法讲解,市面也有很多成熟得3rd套件可以使用.
评论:
ROAM算法过于古老了,不适合现在的显卡硬件加速体系,只适合古老的cpu计算...现在已经没有用纯软件加速来进行3D地形渲染了吧?
其实siney大大所说的静态LOD,类似于楼上所说的Geomipmap,类似于贴图的mipmap原理。总之是个空间换时间的道理。
不过对于siney的动态LOD很费,和farcry2没有使用地形LOD,我不敢苟同。
按照farcry2的地形精度,如果没有做LOD的话,我不认为它能够在现在的顶级配置机器下流畅运行。除了视觉剔除,应当还有其他的渲染优化方法。LOD是逃不开的。
1. 现代的LOD计算方法是可以完全拿到显卡里面作的,以后越来越多的显卡可以具备该功能。
2. 您所说的重构vertex不是问题,成熟的游戏,不会每贞都重新计算LOD并更新vertex,因为主角移动的速度是有限的,不会从一个地方突然切换到另外一个地方,也就意味着LOD层次不必要每次都跳变,所以一般是10秒钟时间重新计算一次LOD的vertexbuffer,这样的开销是极小的。
siney Says:
2008-08-28 17:26:36 回复该留言
没错,现代lod可以在显卡做,意味着需要gs的显卡,但这并不是free的,而且我们需要了解影响渲染效率的瓶颈,做lod固然可以提高效率,但是不做也有很多方法可以抵消效率损失。