Domanda

E 'possibile utilizzare pallettes a colori in OpenGL ES 1.1?

Al momento sto sviluppando un gioco che ha sprite giocatore, e gli sprite giocatori devono essere in grado di essere cambiato in diversi colori squadre. Ad esempio, cambiando i colori delle camicie, ma non i colori del viso, che esclude semplice rotazione della tonalità.

Questo è possibile, o sarà mai questo essere attuato manualmente (modificando direttamente i dati delle texture)?

È stato utile?

Soluzione

Non è una caratteristica hardware del MBX, ma un rapido controllo di gl.h per ES 1.x da iPhone SDK rivela che GL_PALETTE4_RGB8_OES, GL_PALETTE8_RGBA8_OES e un mucchio di altri sono disponibili come una delle costanti da passare a glCompressedTexImage2D, come per la pagina man qui . Così si può passare le texture con palette a quello, ma scommetto qualsiasi cosa che il driver sarà solo li trasformano in strutture RGB sulla CPU e poi caricarle alla GPU. Non credo di Apple supporta i tipi di tessitura compressa per qualsiasi motivo diverso da quello che parte della ES 1.x spec.

Non Sei

In ES 2.x sei libero di fare quello che vuoi. Si potrebbe facilmente caricare la tavolozza come uno trama (con, ad esempio, il pixel in (x, 0) è il colore per l'indice tavolozza x) e la consistenza tavolozza come un altro. Potrai quindi utilizzare due unità texture per fare il lavoro che uno probabilmente potrebbe fare durante la stampa frammenti, in modo da utilizzare il proprio giudizio sul fatto che si può permettere.

Altri suggerimenti

Tenete a mente che qualcosa di diverso GL_NEAREST non mipmapped si fondono tra indici tavolozza. Ho finito per espandere texture tavolozze nel mio metodo di decompressione prima di caricarli come BGRA32. (GLES 2.0)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top