1. LOD 的三种基础框架
- Discrete LOD
- Continuous LOD
- View-Dependent LOD
1.1 Discrete LOD
我们将传统的LOD方法称为离散LOD. 简单来说就是一般理解上的 LOD, 离线生成一系列具有不同细节层次的对象, 然后在运行时选择合适的LOD进行渲染. 在图形程序中有广泛应用.
由于是通过预处理生成 LOD, 无法预测运行时对模型的观察方向, 所以在简化模型的时候一般都是做均匀的简化. 所以这种 LOD 有时也被称为各向同性或视线无关的 LOD(isotropic or view-independent LOD)
优势: 运行时的处理非常简单. 因为是预处理, 所以 LOD 的生成也会比较灵活
1.2 Continuous LOD (Progressive LOD, 渐进式 LOD)
Continuous LOD 是 Discrete LOD 的一个改进. 简化程序生成一个数据结构来对连续的细节范围进行编码, 然后运行时程序可以根据这个数据结构产生合适的细节层次.
优势: 更好的颗粒度. 由于不是从几个预先生成的层次中选择, 所以不会产生不必要的多边形.
1.3 View-Dependent LOD
View-Dependent LOD 又是对 Continuous LOD 的一个补充, 在 Continuous LOD 的基础上再结合当前的视角选择更加合适的 LOD 层级. 因此这种 LOD 是各向异性的. 比如一个模型距离摄像机比较近的部分拥有比远处更高的"分辨率"
优势: 在 Continuous LOD 的基础上进一步优化 LOD 颗粒度. 而且诸如像地形这种非常巨大的模型, 不使用 View-Dependent LOD 通常无法进行简化. 基于视图的LOD可以实现交互式渲染, 而无需人工干预或进行额外的分割处理.
1.4 LOD 实践
尽管 Continuous LOD 和 View-Dependent LOD 有好处, 但是传统的 Discrete LOD 依旧被广泛应用. 前两种方法虽然有好处, 但是缺点同样明显. 他们需要在运行时进行估算, 简化, 优化模型等等操作, 而用来编码的数据结构也同样需要占用额外的内存.
2. LOD 选择因素
很明显, 对于 LOD 技术而言最重要的问题是什么时候切换到分辨率更低或更高的模型上. 直观上距离越远或者越小的模型应该使用越低的分辨率. 这看上去很简单, 但其实一个模型到底需要多小或者多远时就要进行 LOD 切换并不是那么容易确定. 接下来我们分析几种影响 LOD 选择的因素.