Dans le cadre de ma première année dans une école informatique, je suis en train de réaliser un jeu en 3D, avec OpenGL.
Ma question porte sur les textures.
J'ai étudié tous les tutoriaux possibles, de manière à comprendre le fonctionnement des textures, puis j'ai étudié des sources (www.sulaco.co.za). J'ai récupéré un loader de Texture TGA, qui marche impeccablement. Il présente toutefois une particularité que je n'arrive pas à expliquer : selon l'endroit du programme où est stockée la variable (un Gluint) renvoyé par ce loader, la texture s'affiche ou pas... Comme je n'ai trouvé nulle part d'informations sur ce problème, voici quelques exemples de ce que j'ai constaté.
Deux exemples :
1/ La variable est globale dans l'unité qui gère toutes les fonctions graphiques, et l'appel à la fonction LoadTexture se fait dans cette même unité, au lancement du programme, et la texture s'affiche. (si l'une des deux conditions ci-dessus n'est pas vérifiée, la texture ne s'affiche pas : GLBindTexture renvoie false)
2/ La variable est globale (je sais, berk, mais là n'est pas la question ) au programme, en tant que variable public d'une classe Tskin. Et là, rien ne s'affiche, où que soit l'appel à la fonction LoadTexture, où que soit déclarée la variable stockant les textures...
Ce que je souhaite savoir, c'est quels sont les mécanismes apparemment illogiques qui gèrent les textures, ou bien où je peux trouver plus d'infos sur ce sujet, et comment afficher correctement les textures où que soit la variable.
Merci d'avance !
PS : je continue les tests, comme passer la variable de la texture en paramètre global à la fonction d'affichage. Je vous tiens au courant des résultats.
Partager