LOD是实时计算机图形学的一个重要工具,为什么这么说呢,首先,我们期望渲染的场景可能是以指数形式上升的,但是硬件的性能却越来越接近瓶颈,所以在实际应用中,我们需要某种权衡,来达到效果与性能的一个折中点。这个选择折中的过程产生了一个专门的领域,称为Level of Detail(LOD)。
LOD的基本原理或者说想法是很简单的,就是渲染的图片精度有限,我们应该尽可能在需要精细程度高的地方,比如说近景,使用更多的资源进行渲染,而远景,可能只有几个像素可以看见的情况下,我们可以使用更少的资源渲染,达到速度与质量的均衡。对于LOD来说,主要通过简化模型来实现这个过程。比如近处的模型采用100万个顶点的高精度模型渲染,远处的模型使用100个定点的低精度模型进行渲染,即可达到目的。
为了达到这个目的,首先需要对模型进行简化,生成不同精度等级的模型,比如100万顶点的原模型,作为L0精度;10万顶点的模型,作为L1精度;1万顶点的模型,作为L2精度,以此类推。生成模型的过程需要维持几个准则,不同的算法有不同的准则。
在拥有了不同精度模型后,我们需要决定如何使用模型。按照直觉,近处使用高精度模型,随着距离增加,逐渐降低使用模型的精度等级,直到看不见为止。当然这些也有很多算法来实现这个功能。
2003年,有一本专门讲述这方面的书,Level of Detail for 3D Graphics出版了(国外研究的是真的早啊),这本书对大部分经典的LOD算法进行了介绍,而且很多方法放到现在也不算过时。我阅读它的目的主要是首先了解各个算法的优劣,然后根据我的实际应用,选择一组合适的算法。
这本书首先介绍了关于生成简化后模型的相关知识,随后是在实际应用时,可以采用的框架、算法、优化方法和一些关于地形的实际应用。最后是一些关于LOD的高级话题。下一次会开始介绍一些关于LOD模型生成的知识。