3

我创建了一个地图应用程序,它使用一个非常大的图像作为我的地图。当用户放大到一定程度时,它会显示高分辨率图块,而当缩小到超过 50% 时,它会显示整个图像的低分辨率位图。它工作正常,在我的原始机器人上,有时我会看到非常轻微的延迟,因为新瓷砖被吸入和从垃圾收集器中抽出。

我现在正在考虑 OpenGL ES 如何成为一种更好的渲染方式。我以前从未接触过它,但从我在不同的教程中阅读的内容来看,似乎我可以创建一个有 8 个左右面的四边形,并启用剔除,因此它只绘制当前在屏幕上可见的图像。

这会完全消除滞后吗?现在在我的测试应用程序中,我在应用程序启动时加载了磁贴,但我可以看出延迟是由于第一次绘制这些磁贴。谢谢。

4

1 回答 1

4

我已经编写了一个基于 OpenGL 的地图视图,如果我自己这么说,那真是太棒了。遗憾的是这是一个商业项目,所以我不能提供代码。但是,我可以告诉您,它有 1 个渲染线程、8 个切片下载线程池和(与您的问题最相关)1 个存储线程,用于加载和保存切片到 NAND 闪存或 SD 卡。一次渲染一个图块,每个图块是 2 个三角形(ES 中没有四边形)。它仍然非常快。

于 2010-11-20T22:50:30.023 回答