|
|
麻烦各位帮分析一下,针对这种地形LOD设计方式,裂缝点怎么来消除?
本人的设计如下:该地形重构基于规则格网,首先将一个大范围的地形网格分割成小块(如1024×1024的网格分割成16×16个小块,每个小块的网格数为64×64),而后在每个小块中建立LOD层次级别(如最底层为原始分辨率64×64个网格点,往上一层为32×32个网格点,依此类推,共建立4层LOD级别)。在渲染时,根据视域范围只选择视域体在x-z平面上投影区域内的块来渲染,需要被渲染的块构成一个渲染区域。且根据一定的判别公式来选择每个块渲染的LOD级别。
现在关键的问题是块与块之间若选择了不同分辨率的LOD级别网格,所造成的裂缝怎么来消除。
我是这样想的:规定相邻块的LOD层次差至多不超过1,且对每个块采用三角形扇的绘制方法。每个块存储与其相邻的上、下、左、右四个块的索引,每一帧的渲染分两个步骤:
(1)遍历渲染区域内的块。
对每一个块查看其上、下、左、右四个邻接块。若邻接块在之前还未遍历到,则跳过。
否则,查看其LOD层次。若该邻接块的分辨率比当前块低,则在当前块中边界上会引起裂缝的点进行处理,不予以绘制,如附件图中的1,2点。
若该邻接块的分辨率比当前块高,则通过索引将该邻接块边界上会引起裂缝的点进行处理,不予以绘制,如附件图中的3,4,5,6点。
(2)对渲染区中的每一个块在前一阶段经过边界裂缝消除的基础上,以三角形扇的方式进行绘制。
我想问的是:
(1)这种在每一帧中进行两阶段的处理方式,是否能够保证地形漫游的流畅性?
(2)在进行块间不同LOD级别的裂缝消除时,将边界上会引起裂缝的点进行处理以在下一阶段不予以绘制应该怎么来实现?顶点应该怎么来排列才能达到这种实现方式?
麻烦帮出出主意! |
|