2010-10-31 4 views
2

Existe-t-il un moyen d'utiliser GL_RGBA8 sur l'iPhone/iPad? Mes textures apparaissent vides lorsque j'essaie d'utiliser GL_RGBA8_OES à la place. GL_RGBA provoque un problème lors de l'utilisation de la transparence.iOS utilisant GL_RGBA8

Je ne l'ai pas essayé sur le vrai appareil, seulement dans le simulateur.

Répondre

7

GL_RGBA8 est pour le tampon de rendu. Voir http://www.khronos.org/registry/gles/extensions/OES/OES_rgb8_rgba8.txt.

Pour obtenir des textures RGBA 8 bits, lorsque vous appelez glTexImage2D, utilisez GL_RGBA comme format et GL_UNSIGNED_BYTE comme type.

Si vous avez des problèmes avec la transparence qui ne figurent pas, assurez-vous GL_BLEND est activé, assurez-vous que glBlendFunc est utilisé pour mettre en place le mélange correctement, et (pour 1.x GLES), vérifiez que les paramètres sont corrects glTexEnv. Je pense que tout est pertinent ...

+2

Je viens de me dire, ce genre d'erreur pourrait être plus facile à repérer si 'glGetError' était utilisé après chaque appel OpenGL. 'assert (glGetError() == GL_NO_ERROR)' fera pour les débutants. Je touche à cela dans une autre réponse: http://stackoverflow.com/questions/3764173/android-opengl-es-i-cant-make-glulookat-gluperspective-work –

+0

Merci, le problème que j'avais était en effet causé par le absence de GL_BLEND. Cela fonctionne maintenant bien avec GL_RGBA. – sharvey