LOD: Level of Detail
LOD是Level Of Details的缩写即多层次细节。在计算机图形学中,LOD就是为了支持当物体远离观察者或者物体的重要程度不同,位置不同,速度不同或者视角相关的参数不同需要减少渲染3D模型的复杂度。LOD技术增加渲染效率的本质是通过增加图形管线的工作量,主要是通过顶点数据进行交换的。大部分情况下,被减少的视角效果不会被注意到,因为对于非常远的物体或者快速移动的物体的影响是非常小的。
在大量顶点和材质的场景中,为了提升渲染帧率
1、几何体(更少的顶点)
2、更简单的材质(更快的着色器)
3、关闭阴影
4、用一个冒名顶替者替换几个小实体
在今天的OpenGL图像示例,示出的方法,借助于其中在程序开始时对于给定的3D模型LOD水平的任意数量(大号伊维尔基尼ø ˚F d可以产生etail)。随着每个新的 LOD 级别,三角形区域的数量逐渐减少 - 通过三角形边缘的塌陷(edge collapse):
然而,在执行边缘折叠之前,必须首先澄清折叠在多大程度上使模型几何结构完好无损。在上面的例子中,有几条边,它们的折叠不会改变方形几何,但边 ( v2 - v5 ) 是最合适的,因为在这里你从索引中选择顶点 2还是顶点 5并不重要缓冲区已删除。
根据由相应边定界的三角形表面的数量来区分 3D 模型的边是有意义的。这里也讲到所谓的偏侧性。如果一条边只划定一个三角形表面,那么就说一个一侧边(1 个侧边),一条边界定两个三角形表面,然后说一个两侧边(2 个侧边),等等
。现在可以从上图推导出可能的边塌陷的两个条件:
折叠边必须是两侧的。
边的角点也必须是其他两侧(并且只有两侧)边的角点。
在第一步中,我们的过程会搜索所有可能发生塌陷的边,并确定每个 LOD 级别的边塌陷次数(要生成的 LOD 级别越多,每个级别必须执行的边塌陷越少) )。为了使模型几何体在倒塌后尽可能保持完整,在每次倒塌之前首先搜索可能的最短边。在执行了针对 LOD 级别的所有边缘折叠之后,最终会更新索引缓冲区。
一个通知:
LOD 友好的 3D 模型 3D 模型的设计方式对 LOD 关卡的质量有着不可忽视的影响。如果可能,基本网格(最低 LOD 级别)应由单个基本组件组成,其细节不能进一步减少。在第二步中,可以将附加细节集成到基本组件中。
例子:
球形物体 => 立方体,双金字塔(基本组件)
天线 => 金字塔(基本组件)
轮 => 长方体(基本组件)
圆锥 => 金字塔(基本组件)
参考文章:
为 3D 模型生成 LOD 级别:
https://www.spieleprogrammierung.net/2010/04/opengl-3-lod-stufen-fur-ein-3d-modell.html
探索游戏中的LOD技术 - 网格简化:
https://zhuanlan.zhihu.com/p/51944864
网友评论