3

我目前正在设计和开发一个定制的图像查看器,用于非常大的图像文件(有时是千兆像素)。幸运的是,这些是在分阶段分辨率层中以 256x256 瓦片的形式提供的,然后在需要时传递给 OpenGL。

瓦片本身是通过 QuadTree 管理的,这似乎是“几乎是二次幂”图像的强大解决方案。然而,给定具有极宽纵横比的图像(例如 1 千兆像素 x 50,000),模型开始因大量空图块而动摇。一次只能展示有限数量的瓷砖。

我正在使用带有 LWJGL 的 Java 7 来提供 OpenGL 上下文。
QuadTree 解决方案是否适合此问题,或者是否有更好的数据管理替代方案?

编辑:编辑标题以使其更有意义。

4

1 回答 1

0

四叉树强制您沿两个坐标轴进行拆分。您的问题涉及广泛,因此其中一个轴将被过度分割。

您有 2 个解决方案:

  • 使用 BSP。类似的概念,但不是拆分两个坐标范围,而是选择一个并将其拆分为 2。这样,您可以更频繁地沿着大范围拆分,而不是在较小的范围内拆分。
  • 在顶层使用四叉树网格。通过这种方式,您可以将空间分成粗略的正方形,以便更好地利用这些位。@Andreas 在评论中也建议了这一点。
于 2013-12-19T13:49:31.340 回答