Ben en fait je me suis inspiré d'une source existante ou il le
multitexturing est implémenté mais pas l'eclairage qui va avec! je vous
mets les paries interessantes du source:
void initARBTextures()
{
glActiveTextureARB( GL_TEXTURE0_ARB );
//glEnable( GL_TEXTURE_2D );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
glActiveTextureARB( GL_TEXTURE1_ARB );
//glEnable( GL_TEXTURE_2D );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB );
glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE_ARB );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB );
glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE );
glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_PRIMARY_COLOR_ARB );
glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_COLOR );
}
j'ai un gros prb avec cette focntion ! Je la comprends que tres peu et
sur internet pas moyen de trouver de la doc qui explicite tous ces
paramètres (enfin j'ai peut etre trouvé sur le site des developpeurs
nvidia...mais faut que je telecharge un pdf qui a l'air lourd pour mon
56K) Mais cette fonction donne un truc trop bizarre au rendu! En fait
pour tester j'ai decider de melanger 2 textures sur tous les polygones
d'un objet et ce qui se passe c'est que toutes les zones qui sont
normalement eclairées sont recouverte de la 1ere texture et toutes les
zones d'ombres sont recouvertes par la 2eme texture! Mais il n'y a pas
d'eclairage a part cela.
Sinon g trouvé un autre systeme de paramétrage qui me donne ce que je veut en melangeant de facon homogene les 2 textures:
void initARBTextures()
{
glActiveTextureARB( GL_TEXTURE0_ARB );
//glEnable( GL_TEXTURE_2D );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
glActiveTextureARB( GL_TEXTURE1_ARB );
//glEnable( GL_TEXTURE_2D );
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_INCR);
}
il prends bcp moins de place! Mais la encore de nouveaux parametres qui m'inspirent pas tellement...
la fct de rendu ne contiient rien de special a par cette fct la
glMultiTexCoord2*(GL_TEXTURE{0..n}, x, y); qui remplace le classique
glTexCoord2f(u,v);
Sinon vous voyez que dans les fcts precedentes g mis tous les
glEnable( GL_TEXTURE_2D ); en commentaires . Je n'ai pas compris du
tout pourquoi dans tous les codes implementant le multitexturing il
reactivait constamment les textures 2D! Surtout que en ne les mettant
pas je n'ai precu aucun changement!
Et la en plus je viens de m'aprecevoir que j'avais laissé un
glBindTexture(GL_TEXTURE_2D,nom[mapFaces[a].matID]);
avant le dessin des polys et c'est ce qui me permet d'obtenir un
melange homogene parce que si je l'enleve je ne vois plus que une
texture! Bref c la mega bidouille ce truc, j'y comprends que dalle! 8O
Et l'extension ARB je suis obligé de l'utiliser pour a ctiver les
textures 0 et 1 et pour paramétrer le melange...efin je crois...
Je suis aller voir le tut de nehe mais g rien trouvé d'interessant pour
resoudre mon prb...et sur opengl.org c'est le néant complet!! Mais
qu'est ce que c'est que ce site! Les seules liens utiles sont tous
morts! Le lien pour la derniere version de opengl mort aussi!
Mais merci pour votre soutient!