Оптимизация OpenGL ES на iPhone и интерпретация инструментов - PullRequest
5 голосов
/ 25 июня 2010

Я пытаюсь поднять свой FPS на iPhone 3Gs с 30 как можно выше ... и я столкнулся с несколькими проблемами и подумал, что было бы лучше попросить совета.

1) Что именно означают столбцы «Использование рендерера» и «Использование тайлера» в инструменте OpenGL ES?Мой процент использования Tiler чрезвычайно низок, а использование Renderer Utilization имеет тенденцию падать во время взаимодействия с пользователем и когда приложение переходит в альбомный режим.Я заметил, что мой FPS имеет тенденцию падать, когда значение Renderer Utilization также падает.Мое падение FPS в ландшафтном режиме особенно странно для меня, потому что портретный режим и ландшафтный режим используют одинаковую игровую логику и текстуры ... а ландшафтный режим фактически отображает меньше вершин / треугольников для загрузки (некоторые части пользовательского интерфейса ненарисовано вообще в альбомном режиме).

2) Я уже выполнил большинство рекомендованных оптимизаций в видео ngmoco / Stanford, и единственное, что я могу сделать, осталось изменить GLfloats на GLshorts и чередоватьмои вершины с моими координатами текстуры в один массив.Могут ли какие-либо из них иметь большое влияние на мой FPS?Это 2D-игра-спрайт с множеством больших, детализированных текстур ...

3) Какой более быстрый способ скрыть многоугольник: установить все его вершины в одинаковые координаты (по сути, уменьшить его до точки) или устанавливая его альфа-значение на 0?Я предполагаю, что это первое, поскольку смешивание медленнее и особенно дорого на iPhone.

4) В настоящее время я использую 2 512x512 текстур, 1024x512 текстур и 256x256 текстур.Я обратился за советом о том, как лучше всего справиться с этим, и мне сказали не объединять их в текстуру 1 1024x1024 из-за проблем с памятью на iPhone 3G.Я хотел бы подтвердить это здесь, потому что, если я помещу все в одну текстуру, я могу устранить необходимость многократного вызова glBindTexture ...

1 Ответ

0 голосов
/ 24 июля 2010

К # 4: (а) да, iPhone задокументирован не для обработки изображений размером более 1024 на стороне.1024x1024 - это максимальный теоретический предел, хотя вы можете столкнуться с проблемами, если попытаетесь подтолкнуть его прямо к пределу.

(b) все ваши текстуры не вписываются в 1024x1024;после того, как 1024x512 и 2 512x512s заполнят это пространство, у вас останется 256x256.

...