四叉树地形分裂-我不明白


12

我读过的大多数论文都以某种形式或其他形式在四叉树上建立了地形。请参阅第38页

http://www.slideshare.net/repii/terrain-rendering-in-frostbite-using-procedural-shader-splatting-presentation?from=ss_embed

第一点与后两者没有矛盾吗?如何在每片叶子上有一个固定的33x33顶点网格,又如何在四叉树中讨论自适应除法?术语令人困惑,对此我将不胜感激!


这是我的假设:
每次四叉树更改都会重新放置补丁,不是吗?

http://www.dukecg.net/QuadtreeTerrain.png

  1. 从地形边界开始的四叉树。
  2. 迭代到观察者位置。
  3. 受限版本(邻居之间的等级差异不超过1)
  4. 视锥剔除。
  5. 将地形补丁放置在每个生成的叶子中,其中比例不同,但分辨率始终为33x33。

Answers:


7

不,不是。如果您打算将四叉树用于地形细节级别,则存储的节点通常都将具有相同的数据结构。

在您的示例中,该结构是节点将容纳的33×33子网格。根据节点的级别,该33×33网格将适应(自适应)以覆盖更大的区域。较大的节点将填充较大的空间,但其子网格仍为33×33顶点补丁。

构建完树后,您可以通过倒下树并丢弃不相交的节点来进行截锥体的剔除。

要记住的一件事是,您将很可能需要解决较大的节点紧挨着较小的节点绘制时出现的裂缝。一种简单的方法是简单地调整(折叠)网格之间的所有未共享顶点。

至于您关于被替换树的其他问题,是的。除非您想进入管理树的数据,否则建议您仅创建一个堆栈并在视图充分移动时将其刷新。


在演示幻灯片39-40中解释了在不同尺寸的瓷砖上可见的接缝问题。显然,它们通过在接合处使用9个可能的网格之一来移除T形接合(请参见幻灯片40)。
bummzack 2011年

免责声明:IDNRTFA ;-)
bitcruncher 2011年

3

地形的“单位”为33x33块。如果您很近,那将会看到。如果您距离较远,则将这些块融合到较低的LOD块中。

之所以使用最低级别(叶)的固定块,是因为现代硬件采用静态几何时速度要快得多。诸如ROAM之类的系统需要进行大量工作以减少最终的多边形数量,因此会遭受可观的性能损失。


因此,最终叶子不是每个可能的最终叶子(以最小的网格大小),而是基于距离的那个迭代的最终叶子,所以有些可能是16x16,而有些可能是256x256(或其他)?这是否意味着每次四叉树更改时,都必须放置补丁并再次缩放?
乔治R
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.