Как добиться эффекта палитры на iPhone с помощью OpenGL

Я портирую 2d ретро-игру на iPhone со следующими свойствами:

  • нацелен на OpenGL ES 1.1
  • весь экран заполнен плиткой (текстурированная треугольная полоса
  • плитка текстурирована с использованием одного изображения текстуры RGBA 256x256
  • текстура передается в OpenGL один раз в начале игры
  • используются только 4 отображаемых цвета
  • один из отображаемых цветов черный

В исходной игре экран мигал, когда время истекало, путем переключения черных пикселей на белые с помощью индексированной палитры.

Каков наилучший (т.е. наиболее эффективный) способ добиться этого в OpenGL ES 1.1?

Мои мысли на данный момент:

  1. Сгенерировать альтернативную текстуру с белыми пикселями вместо черных и передать в OpenGL, когда экран мигает.
  2. Визуализируйте белый поли под фоном и визуализируйте текстуру с включенным альфа-каналом, чтобы отобразить ее.
  3. Попробуйте визуализировать поли сверху с некоторым смешиванием, чтобы добиться нужного эффекта (не уверен, что это возможно).

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


person Joe    schedule 09.04.2010    source источник


Ответы (1)


В конце я продублировал тайлы / спрайты в свободном пространстве текстуры и просто отрендерил из этой части текстуры.

person Joe    schedule 23.04.2010