Cocoa touch 在类似于谷歌地图的可伸缩视图中进行Mipmapping?

Cocoa touch 在类似于谷歌地图的可伸缩视图中进行Mipmapping?,cocoa-touch,opengl-es,ios4,Cocoa Touch,Opengl Es,Ios4,我有一个巨大的地图图像(8192x6144px),我想以1x到0.1x的比例显示。使用PVR4-bpp压缩,在1x时大约是24MB——有点太多了。所以我想根据地图的比例,以不同的分辨率加载它们 mipmapping是否完成了我需要的功能,即根据地图比例加载/卸载mipmapps的级别?据我所知,似乎所有的mipmap级别都需要加载,并且无法在运行时生成/发布。从技术上讲,它可以(您可以选择要更新/获取的mipmap级别中的哪一个),但这给您留下了一个初始问题:当您处于最大缩放时,必须将整个图像保

我有一个巨大的地图图像(8192x6144px),我想以1x到0.1x的比例显示。使用PVR4-bpp压缩,在1x时大约是24MB——有点太多了。所以我想根据地图的比例,以不同的分辨率加载它们

mipmapping是否完成了我需要的功能,即根据地图比例加载/卸载mipmapps的级别?据我所知,似乎所有的mipmap级别都需要加载,并且无法在运行时生成/发布。

从技术上讲,它可以(您可以选择要更新/获取的mipmap级别中的哪一个),但这给您留下了一个初始问题:当您处于最大缩放时,必须将整个图像保存在内存中

我可以想出两个选择

第一种是动态atlas纹理,也称为megatexturing或虚拟纹理。你会发现很多关于这些主题的链接,但这对于你想要的东西来说有点过头了

第二个是标准LOD(细节级别)。在“缩放0.1x”下,仅绘制一个具有低清晰度纹理的四边形。放大时,根据到摄影机的距离递归分割四边形(near=recurse more)。对于每个中等或小四边形,您将以正确的分辨率创建一个新纹理,并将其绑定


因此,您将有一系列512x512图像,以不同的分辨率,组织在一个层次中。

我想我将使用自定义LOD实现。Megatexturing会很好,但是像你说的那样,从零开始需要做太多的工作。哦,我刚刚注意到opengl es标签。这最终排除了MegaTexture。