Chunked LOD是一种分层层次细节(hierarchical levels of detail,HLOD)系统,它能够将整个地形划分成由瓦片组成的四叉树,这些瓦片称为块[13]。根块是一个完整范围的低细节表示。根块的四个子块均匀地将整个范围划分成相等规模的区域并提供一个高细节表示。每一块自身都有四个子块,这些子块又可以继续划分。
四叉树的每个节点由预处理步骤中产生得到,主要方法是通过简化全局地形网格的子集来得到有一定几何误差的特定层次。四叉树每进入一个较低细节层次,几何误差就会翻倍。
运行期间,通过把几何误差映射到屏幕空间并在像素层面计算屏幕空间误差的方法选择要渲染的块。如果误差太大,将以访问子节点作为替代,整个过程称为提炼,这也是LOD算法的选择部分。不同LODs的两个块彼此是相邻的,相邻块之间的顶点并不一定重合,所以导致块与块之间产生裂缝。这一问题使得用户在浏览使用Chunked LOD算法生成并渲染的地形时体验不佳,缺乏逼真感。所以如何填满这些裂缝以便地形网格能够实现无缝连接,是一个重要的问题。(https://www.xing528.com)
由于块是根据最高细节的地形生成的,每提高一个层次则细节变得更少。所以在用户漫游或放大视图时,块被放大,块所能表示的地形与最高细节的地形之间存在误差,随着块放大,误差值逐渐增加。此时,当误差值达到一个阈值时,则载入块的子块并替换块本身,以提高地形的细节层次,并降低块与最高细节地形之间的误差。同样地,当缩小地形的时候,四个子块可能会被父块所替代。Chunked LOD通过逐步变换细节层来解决载入大量地形的问题,这也就是LOD算法的主要部分。
在很多情况下,Chunked LOD是实现大规模地形渲染的有效方法。Chunked LOD在现代GPU上运行非常高效,因为它可以使用相对大的静态顶点缓冲池来渲染每一个块。GPU仅仅用来判断当前场景中需要渲染哪些块。由于现代GPU能够很好地处理大批量的静态顶点渲染任务,所以Chunked LOD会有很好的性能表现,并且能够解放GPU用来执行其他复杂计算,对构建渲染引擎有非常大的帮助。通过LOD技术把空间误差控制在一定范围内的方法来渲染大规模地形场景,可以达到很好的效果,在性能和地形细节直接达到了良好的平衡。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
