Как мне организовать дерево 2D слоев OpenGL ES 1.x? - PullRequest
1 голос
/ 28 января 2010

Я разрабатываю симпатичное приложение-головоломку - http://gotoandplay.freeblog.hu/categories/compactTangram/ - и по соображениям производительности я решил визуализировать вид с помощью OpenGL. Я начал изучать это, я в порядке с буферами, вершинами, текстурами очень простым способом.

Ситуация: В игре пользователь манипулирует 7 пазлами, каждый из которых имеет 5 подслоев, чтобы получить приятное ощущение освещения. Большинство текстур 256х256. Пользователь манипулирует только одним фрагментом за раз, поэтому остальное остается неизменным во время воспроизведения. Скелет приложения без графики здесь: http://gotoandplay.freeblog.hu/archives/2009/11/11/compactTangram_v10_-_puzzle_completement_test/

Вопрос: Как мне их организовать? Является ли хорошей идеей «предварительно нарисовать» фактические состояния фрагментов в отдельных кадровых буферах (?) / Текстурах (?), Или я могу просто перерисовать каждый фрагмент / слои (1 + 7 * 5 = 36 спрайтов) за временной шаг? Если я использую «predraw», что мне делать? Рисование к кадровому буферу puzzePiece? Тогда как я могу нарисовать его в буфере сцены? Или есть более простой способ "слияния" текстур?

Надеюсь, вы понимаете мой вопрос, если он кажется слишком тусклым, пожалуйста, посмотрите на мою идею о том, как сделать реальный фрагмент в моем блоге (есть простая флэш-реализация того, что я собираюсь сделать) здесь: http://gotoandplay.freeblog.hu/archives/2010/01/07/compactTangram_072_-_tan_rendering_labs/

1 Ответ

0 голосов
/ 28 января 2010

Обычный способ обработки текстур - это упаковывать все ваши изображения в «текстурный атлас» в начале игры / уровня.

Ваш максимальный размер текстуры - 1024x1024, и вы можете иметь около трех из них в памяти на iPhone.

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

...