在类似谷歌地图的可缩放视图中进行Mipmapping?

时间:2010-09-19 03:19:02

标签: cocoa-touch opengl-es ios4

我有一张巨大的地图图片(8192x6144px),我希望以1x到0.1x的比例显示。在1倍时,使用PVR 4-bpp压缩大约为24 mb - 有点太多了。因此,我希望以不同的分辨率加载它们,具体取决于地图比例。

mipmapping是否能实现我所需要的,即根据地图比例加载/卸载mipmap的级别?根据我的阅读,听起来好像需要加载所有mipmap级别,并且无法在运行时生成/发布。

1 个答案:

答案 0 :(得分:2)

嗯,从技术上讲,它可以(您可以选择要更新/获取的mipmap级别中的哪一个),但这会让您遇到最初的问题:当您处于最大缩放时,您必须拥有记忆中的整个图像。

我可以想到两个选择。

这首先是动态图集纹理,也称为超纹理或虚拟纹理。你会发现很多关于这些主题的链接,但这对你想要的东西来说有点过分。

第二个是标准LOD(详细程度)。在缩放0.1x时,您只绘制1个四边形,具有低清纹理。放大时,您会根据到相机的距离递归地分割四边形(接近=递归更多)。对于每个中等或小四边形,您可以以正确的分辨率创建新纹理并将其绑定。

因此,您将拥有一系列以不同分辨率划分的512x512图像,并以层次结构进行组织。