您的位置:首页 > 其它

世界的构建--场景管理LOD技术

2011-03-19 19:39 549 查看
地形





•1.规则网格地形•

2.高度图(高度图用来描述地形的高度信息。高度图实际上是一个数组,数组中的每个元素都存储着地形网格中对应顶点的高度数据(在地形渲染的另一种方法中,高度图中存储的数据是地形中每一个顶点的高度信息)。





规则网格构成的地形,只要网格的划分足够细,就可以足够模拟真实的地形,但是也带来系统资源的消耗的增加。





左图是渲染所有三角形的地形快,右图是减少三角形后的地形快,其中只渲染黑色顶点组成的三角形。



地形高级技术

地形LOD技术

Geomipmap、Roam、QuadTree。。。

•基本原理

通过判断某个网格在进行三角形删减优化后造成的误差在屏幕上的投影是否处于可接受范围来确定是否删减三角形。

什么是LOD

Level of Detail

•通过在不影响屏幕视觉的情况下,减少三角形渲染来获得提高渲染效率的方法

•LOD的作用:

在距离摄像机近的地方显示更细致的效果

增加可视距离

减少计算机资源消耗



地形LOD、模型LOD

四叉树LOD

对地形采用四叉分割的方法,来判断和生成地形的连续LOD效果,提高地形的渲染效率

高效的进行LOD优化

提供紧凑的数据存储

提供高效的地形数据获取

高效的优化和剪裁

•基本算法

Draw_Square (S)

{

if(S节点需要再次细分)

{

将S分为四个节点S1,S2,S3,S4

依次

Draw_Square(S1)

Draw_Square(S2)

Draw_Square(S3)

Draw_Square(S4)

}

else

渲染 S

}

判断S是否需要细分的原则和GeoMipmap算法类似,即判断如果不细分的情况下产生的高度差的误差是否处于可接受范围



处理不同邻接节点之间不同LOD级别的问题,有两种方法
1、为大的LOD节点增加一条新边
2、将小的LOD节点移除一条边
可以看出方法2渲染得图形的三角形比方法1规范,那么如何确定移除节点的哪条边?







1、首先按照前述方法确定各个四叉树的分形状况并确定各个节点的LOD级别
2、然后对各个节点和邻接节点的LOD级别进行处理,将大的节点细分,确保每个节点的划分次数至多只相差1
3、根据节点和邻接节点的划分级别确定渲染需要移除的边




实际游戏中的LOD地形删减


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐