Разумные размеры текстур в Android - PullRequest
4 голосов
/ 11 августа 2011

Я пытаюсь разработать приложение, которое использует opengl на андроиде, и в идеале заставить его работать на любом телефоне, столь же старом, как оригинальный дроид (или, по крайней мере, на любом телефоне, поддерживающем OpenGL ES 2.0).В настоящее время я использую сжатие текстур ETC1 размером 2048x2048.Он отлично работает на Droid X, на котором я его тестирую, но в настоящее время у меня нет оригинального дроида для тестирования, и я также не могу найти много данных по этой теме.Я знаю, что G1 не очень хорошо справлялся с текстурами размером более 512x512, и дроид, кажется, хорошо справлялся с изображениями размером 1024x1024, но как насчет 2048x2048?(Опять же, сжатие etc1, поэтому оно размером около 2 МБ).Кроме того, поскольку ETC1 не поддерживает альфа, я хотел бы загрузить другую текстуру ETC1 для поддержки альфа-канала.Это несбыточная мечта?

По сути, я хотел бы знать, сколько места мне нужно для загрузки данных текстуры в телефонах Android не старше, чем оригинальный дроид, по крайней мере, без резкого замедления всего процесса.

1 Ответ

4 голосов
/ 12 августа 2011

Вы можете запросить MAX_TEXTURE_SIZE, чтобы получить максимальный размер текстуры, или вы можете посмотреть свой телефон на http://glbenchmark.com (вы можете найти информацию о Droid здесь ).G1 не поддерживает GLES 2.0, AFAIK.

Загрузка нескольких текстур должна определенно работать, особенно если они не более 2 МБ каждая.Но вы, конечно, будете ограничены размером доступной памяти.

Кроме того, чтобы иметь оптимальную производительность, вы должны отобразить ваши текстуры.Поскольку вы используете ETC, это должно быть сделано в автономном режиме.

Руководство по использованию ETC1 с альфа-каналом см. здесь .

...