bonjour,
Dans mon projet je genere un terrain sur lequel j'applique une texture (roche par exemple) avec opengl.
Maintenant je voudrais gerer le multitexturing afin que, lorsque que je
peint une autre texture sur le terrain ( herbe par exemple) celle ci
sur melange un peu au niveau de la frontiere entre la roche et
l'herbe...
J'ai essayé cela avec l'extension ARB de opengl pour pouvoir utiliser la fct
glMultiTexCoord2fARB() pour pouvoir donner a opengl plusieurs coordonnées de textures sur plusieurs textures différentes...
Mais le prb c'est que je n'arrive pas a paramétrer le melange comme je
veux,. Dans une source j'ai trouvé ca: ( mais je n'y comprends rien)
glActiveTextureARB( GL_TEXTURE0_ARB );
glEnable( GL_TEXTURE_2D );
glBindTexture( GL_TEXTURE_2D, g_textureID_0 );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL );
//
// Texture Stage 1
//
// Perform a linear interpolation between the output of stage 0
// (i.e texture0) and texture1 and use the RGB portion of the vertex's
// color to mix the two.
//
glActiveTextureARB(GL_TEXTURE1_ARB );
glEnable( GL_TEXTURE_2D );
glBindTexture( GL_TEXTURE_2D, g_textureID_1 );
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 );
ca sert a paramétrer l'application des
textures 0 et 1 mais a part ca...ca donne pas ce que je veux et en plus
je peux pas paramétrer l'a contribution de chaque texture...
Peut etre y a t'il un autre moyen que de passer par les extensions ARB de opengl...
Comment font les developpeurs dans les jeux?