Il codice OpenGL che funziona sul Nexus One non funziona correttamente sul Nexus S. Le trame non sembrano il rendering e mi rimane solo il nero dove dovrebbero essere le trame.OpenGL ES black texture su Nexus S
Qualcuno ha qualche idea?
Il codice OpenGL che funziona sul Nexus One non funziona correttamente sul Nexus S. Le trame non sembrano il rendering e mi rimane solo il nero dove dovrebbero essere le trame.OpenGL ES black texture su Nexus S
Qualcuno ha qualche idea?
I accepted answer given here risolve questo problema in un po 'più approfondito di quanto voglio io, ma mentre questo problema schermo nero si pone dalla Nexus S (e alcuni altri dispositivi) che sono rigidi riguardo la potenza di due trame, , non significa che le trame debbano avere dimensioni che sono un Po2.
Nel codice trama di carico, si possono avere le seguenti linee:
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
e se questo codice viene modificato per aggiungere altre due linee per il bloccaggio, quindi il telefono sarà supporto nPo2 trame disponibile uno è ok con il bloccaggio. Ecco il codice con il morsetto aggiunto:
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
Nexus S è più rigido delle dimensioni delle immagini utilizzate come trame in OpenGL ES.
texture deve essere una dimensione di 2^n (ad esempio 256, 512, 1024, ecc)
Non si può usare GL_CLAMP_TO_EDGE per evitare questo problema? –
Una buona idea potrebbe essere quella di incollare del codice. Per i principianti, stai abilitando l'unità texture? –