Я разрабатываю 2D-игру для iPhone с использованием OpenGL ES, и я хотел бы использовать растровое изображение 320x480 в качестве постоянного фона.
Моей первой мыслью было создать четырехугольник 320x480, а затем наложить на него текстуру, представляющую фон. Итак ... Я создал текстуру 512x512 с изображением на ней 320x480. Затем я сопоставил это с квадроциклом 320x480.
Я рисую этот фон в каждом кадре, а затем рисую поверх него анимированные спрайты. Это отлично работает, за исключением того, что отрисовка всех этих объектов (фон + спрайты) идет слишком медленно.
Я провел небольшое тестирование и обнаружил, что мое замедление связано с пиксельным конвейером. Неудивительно, что главная причина - большое фоновое изображение. Чтобы доказать это, я удалил фоновую прорисовку, и все остальное визуализировалось очень быстро.
Я ищу совета, как сохранить свой прошлый опыт, а также улучшить производительность.
Вот еще немного информации:
1) В настоящее время я тестирую симулятор (все еще жду лицензии от Apple)
2) Фон представляет собой сжатую до 128к текстуру PVR
3) Я надеялся, что есть способ кэшировать этот фон в буфер цвета, но мне это не удалось. это может быть из-за моего неопытности с OpenGL ES, или это может быть глупая идея, которая не сработает :)
4) Я понимаю, что не всегда нужно обновлять весь фон, а только те части, которые были нарисованы движущимися спрайтами. Я начал изучать методы обновления (по мере необходимости) частей фона либо в виде отдельных текстур, либо с помощью ножницы, однако это кажется менее чем элегантным.
Будем очень признательны за любые советы / советы ...
Спасибо.