使用OpenGL QuadTree渲染大型矩形平铺图像

时间:2013-05-20 11:13:27

标签: java opengl tree tile quadtree

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

瓷砖本身通过QuadTree进行管理,这对于“几乎是2的功率”图像来说似乎是一个强大的解决方案。然而,假设具有极宽的纵横比(例如,1千兆像素×50,000)的图像,则模型开始因大量空块而动摇。 一次只能展示数量有限的瓷砖。

我使用Java 7和LWJGL来提供OpenGL上下文 QuadTree解决方案是否适合这个问题,还是有更好的替代方案来管理数据?

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

1 个答案:

答案 0 :(得分:0)

四元树强制您沿两个坐标轴分割。你的问题有很多方面,所以其中一个轴会过度分裂。

你有2个解决方案:

  • 使用BSP。类似的概念,但不是拆分两个坐标范围,而是选择一个并将其拆分为2.使用此方法,您可以更频繁地分割大范围而不是小范围。
  • 在顶层使用QuadTrees网格。这样您就可以将空间分成粗糙的方块,以便更好地利用这些位。 @Andreas在评论中也提出了这一点。