barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007
-
7 mai 2005 à 19:20
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 2007
-
12 mai 2005 à 09:50
Voila j'ai un petit soucis de transparance avec les images BMP
J'afficher mes arbres en utilisant le format TGA, mais la transparance
ne semble marcher que pour les images 32Bit !!! sa rame trop donc je
veux pas.
J'ai donc choisis d'utiliser deux images BMP, et voici le code :
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 9 mai 2005 à 20:05
Salut Barraq !!!, commence a avoir de la gueule ton soft !!! Félicitation !!!.
Pour la transparence, j'ai deja utilisé du RGBA avec du TGA et ca marche donc chope peut etre un autre loader....
Pour l'histoire des BMP j'ai pas trop compris comment tu les melanges (j'ai regarde vite fait... j'ai plus le tps de rien faire....) on dirai que tu fais du multi-texturing en dessinant 2 fois le meme objet...., mais au sinon, si tu as les arbres noirs ,cela peut etre un probleme de couleur ou une mauvaise fonction de blending ou les deux.
Désolé, j'ai pas mon book d'OpenGL sous la main... il est au boulot....
barraq
Messages postés89Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention14 septembre 2007 9 mai 2005 à 21:49
Merci bien pour le compliement
sinon pour les BMPs sa avance un petit peu, le noir vient du fait que
le system de double couche de BMP de marche pas avec le
multi-texturing... donc j'ai placé a dessiner les arbres aprés
l'affichage de la map et sa allé déja mieux, ensuite j'affiche le
skybox avant car la couleur noir semblait venir du fait que le fond de
mon écran est noir avant que j'affiche mon skybox.
Mais cela n'empeche pas que je n'est pas le meme résultat que avec TGA....
mais meme si je change de loader 32bit sa rest HUGE pour une texture....
Enfin la dead line c dans 3 jours, donc je vais implementer les deux versions.
Si je trouve la solution je la posterais ici.
Et bientot toutes les sources de mon code seront mis en ligne, mais faut que j'attend mon examination avant ...
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 11 mai 2005 à 20:44
Alors ?, t'as trouve ton erreur ?
Figure toi que pas plus tard qu'hier j'ai eu la meme erreur d'affichage... maintenant, a savoir si c'est la meme que toi...
J'affichais mon terrain en multitexturing puis apres quelques objets et ceux qui utilisaient une texture etaient tout noir.... L'erreur c'est que je ne désactivais pas totalement/correctement les étages de textures apres le rendu du terrain et SURTOUT il faut toujours active le premier etage de texture en sortie... (il me semble que je te l'avais dis... en voici la preuve ...).
Sinon coté boulot c'est impec'... rien à dire... OpenGL / C++ ... ambiance sympa ... c la fete...
KeniiyK
Vous n’avez pas trouvé la réponse que vous recherchez ?
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 12 mai 2005 à 09:50
Ben voila mon code de rendu du terrain :
// activation de l'unite de texture 0
glActiveTextureARB(GL_TEXTURE0_ARB);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,_textureNames[0]);
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL);
// activation de l'unite de texture 1
glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,_textureNames[1]);
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL);
// coords de l'unite de texture 0
glClientActiveTextureARB(GL_TEXTURE0_ARB);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer(2,GL_FLOAT,0,_texCoordArrayUnit0);
// coords de l'unite de texture 1
glClientActiveTextureARB(GL_TEXTURE1_ARB);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer(2,GL_FLOAT,0,_texCoordArrayUnit1);
// activation des differents tableaux
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
// les tableaux....
glColorPointer(4,GL_FLOAT,0,_colorArray);
glNormalPointer(GL_FLOAT,0,_normalArray);
glVertexPointer(3,GL_FLOAT,0,_vertexArray);
// on dessine
glDrawArrays(GL_TRIANGLES,0,3*_numFaces);
// disable des tableaux
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
// disable coord unit 1
glClientActiveTextureARB(GL_TEXTURE1_ARB);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
// disable coord unit 0
glClientActiveTextureARB(GL_TEXTURE0_ARB);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
// disable unit 1
glActiveTextureARB(GL_TEXTURE1_ARB);
glDisable(GL_TEXTURE_2D);
// disable unit 0
glActiveTextureARB(GL_TEXTURE0_ARB);
glDisable(GL_TEXTURE_2D);
Et voila...., maintenant que j'ai poste je remarque qu'il y a peut etre des appels inutiles, mais ca marche...