2011-10-04 2 views
1

Je développe actuellement une application OpenGL ES 2.0 basée sur NDK. Et je charge des textures en utilisant libjpeg en le retournant verticalement (comme le dit la norme OpenGL). Il fonctionne bien sur Samsung Galaxy SII, HTC Desire HD et ainsi de suite (+ mise en œuvre SDL de Windows). Mais sur certains téléphones (comme le Samsung Galaxy S GT-I9000 par les rapports des utilisateurs d'Android Market) il y a un vieux problème spécifique à Android avec orign situé en haut/à gauche de l'image, pas en bas/à gauche. Comment puis-je déterminer, devrais-je retourner des textures ou pas à une exécution?L'origine de la texture OpenGL ES diffère de haut/bas à gauche/gauche sur différents téléphones

J'ai pensé à rendre un motif de test à la texture, puis à analyser la sortie, mais c'est une solution de contournement trop complexe. Il doit y avoir un moyen plus facile.

Merci!

Répondre

1

On dirait que j'ai résolu ce problème moi-même. J'ai commencé à utiliser des textures ETC1 compressées au lieu des textures non compressées et cela a aidé à résoudre ce problème étrange.

0

je veux vous poser des questions sur votre problème ...

j'ai quelques problèmes de chargement des textures sur le dispositif gt-i9000 et tous les autres appareils qui utilisent le PowerVR SGX540 ou PowerVR SGX530 gpu. J'utilise les textures ETC. Ils fonctionnent sur tous les autres appareils, mais sur ces appareils certaines textures sont comme le noir ...

Est-ce que vous utilisez un réglage spécifique que vous utilisez dans vos fonctions glTexParameterf (...)?

J'utilise ces:

gl.glActiveTexture(GL10.GL_TEXTURE0);    
gl.glBindTexture(GL10.GL_TEXTURE_2D, glTextureId); 
gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MIN_FILTER, gl.GL_LINEAR); 
gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER, gl.GL_LINEAR); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);     
Questions connexes