Обращение с большими растровыми изображениями в OpenGL ES и Android

StackOverflow https://stackoverflow.com/questions/4234689

Вопрос

Я создал приложение Map, которое использует очень большое изображение в качестве моей карты. Он показывает плитки с высоким разрешением, когда пользователь увеличивает определенную степень и растровое изображение более низкого разрешения всего изображения при увеличении до 50%. Он работает нормально, на моем исходном дроиде иногда я вижу очень легкое отставание из-за новых плиток, втянутых в и из сборщика мусора.

Я сейчас думаю о том, как OpenGL ES будет лучшим способом рендера. Я никогда не затронул его раньше, но от того, что я читал в разных туроализаторах, похоже, что я мог бы создать квадроцикл, который имеет 8 граней или около того, и включить отбрасывание, поэтому его только рисует изображения, которые в настоящее время видны на экране.

Будет ли это полностью устранить отставание? В моем тестовом приложении теперь у меня есть плитки, загруженные на приложение Startup, но я могу сказать, что задержка из-за этих плиток в первую очередь. Спасибо.

Это было полезно?

Решение

Я написал представление на основе OpenGL, и это кровавое потрясающее, если я говорю так себе. К сожалению, это для коммерческого проекта, поэтому я не могу предложить код. Однако я могу сказать вам, что он имеет 1 нить рендеринга, пул из 8 нитей загрузки плиток и (наиболее уместно на ваш вопрос) 1 резьба для хранения, которые загружают и сохраняет плитки на вспышку NAND или SD-карту. Рендеринг выполняется одна плитка за раз, каждая плитка - 2 треугольника (нет четырех четырехлетних). Это все еще волдыно быстро.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top