Pregunta

¿Es posible utilizar pallettes de color en OpenGL ES 1.1?

Actualmente estoy desarrollando un juego que tiene sprites jugador, y el jugador sprites que tenga que ser capaz de ser cambiado a los colores diferentes equipos. Por ejemplo, el cambio de colores de las camisas, pero no los colores de la cara, lo que descarta simple rotación tonalidad.

¿Es esto posible, o será ésta tienen que ser aplicadas manualmente (modificación de los datos de textura directamente)? ??

¿Fue útil?

Solución

No es una característica de hardware de la MBX pero una revisión rápida de gl.h para ES 1.x del SDK del iPhone revela que GL_PALETTE4_RGB8_OES, GL_PALETTE8_RGBA8_OES y un montón de otros están disponibles como una de las constantes para pasar a glCompressedTexImage2D, según la página del manual aquí . Lo que puede pasar texturas con paletas a eso, pero me apuesto lo que el conductor sólo ellos se convertirá en texturas RGB en la CPU y luego subirlos a la GPU. No creo de Apple admite ese tipo de textura comprimida por cualquier razón distinta de la que son parte de la especificación ES 1.x.

En ES 2.x usted es libre de hacer lo que quiera. Desde aquí se puede cargar la paleta como una textura (con, por ejemplo, el píxel en (x, 0) es el color para el índice de la paleta x) y la textura con paleta como otro. A continuación, utilizar dos unidades de textura para hacer el trabajo que uno probablemente podría hacer al trazar fragmentos, a fin de utilizar su propio juicio acerca de si se lo puede permitir eso.

Otros consejos

Tenga en cuenta que, aparte de GL_NEAREST no mipmapped nada se mezcla entre índices de paleta. Terminé la expansión de texturas con paleta en mi método de descompresión antes de subirlos como BGRA32. (GLES 2,0)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top