OpenGL map blending

dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 29 août 2005 à 17:54
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 30 août 2005 à 23:30
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)

<hr size="2" width="100%">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 );

<hr size="2" width="100%">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?

10 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 août 2005 à 22:14
Bon d'après ce que j'ai compris. Si tu prends un format de texture qui
gère la transparence, tu peux pas mettre une transparence progressive
sur le bord ?
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
29 août 2005 à 22:21
pourquoi ca?

En tout cas mes textures sont au format jpeg donc elles ne prennent pas en compte la transparence...
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 août 2005 à 23:12
Ben ca, ca veut dire quoi : celle ci sur melange un peu au niveau de la frontiere entre la roche et l'herbe...

Moi je comprends, le bord de la texture de l'herbe est un peu tranparent.
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
29 août 2005 à 23:24
Non il est pas transparent, ce que je veux c'est appliquer 2 textures
sur le meme poly ( herbe +roche) et que ces textures se melangent avec
une contribution plus importante de la roche pour les polys de la
frontiere( entre les textures roche et herbe) qui se trouvent
plus proche de la roche , de meme pour l'herbe pour les polys proche de
la texture herbe et un melange 50 50 pour les polys au milieu de la
frontiere...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
30 août 2005 à 00:27
Donc ta texture herbe serait une texture entièrement transparente avec des points verts (en gros) ?
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
30 août 2005 à 14:45
Non elle est pas transparente! Le parametrage avec glTexEnv permet
seulement de dire a opengl que la texture herbe doit se melanger avec
la roche a un certain degré...defini par la couleur courante je crois...
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
30 août 2005 à 16:19
La tu utilises une texture a 3 compostante RGB, (le jpg quoi). Mais si
tu utilises une texture RBGA, chaque pixel de la texture possède une
transparence propre. C'est sur ce principe que sont affichés les arbres
et les buissons dans certains jeux. Donc si ta texture est entièrement
transparente, elle n'a aucun effet lorsque tu l'appliques. Mais si tu
lui ajoutes seulement des zones vertes (ton herbe) alors ces zones se
superposeront.



Mais comme je suis pas sur d'avoir bien compris. Tu as une texture
terre à la base, sur laquelle tu peux ajouter une texture herbe. Cette
dernière étant composé que de points verts (en gros). Le reste de cette
texture ne devant pas influer sur la texture initiale qu'est la terre,
c'est ca ?
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
30 août 2005 à 20:52
oui, les bords de la texture herbe doivent se melanger avec la texture terre ,c tout.
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
30 août 2005 à 21:07
Oui mais c'est quoi tes bords de la texture... Une bande de pixel sur le coté de ta texture n*n ?



Parce que, le mélange se fait tout seul avec le lissage des textures... donc I do not understand what you want.
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
30 août 2005 à 23:30
aie aie aie! Je vais pas y arriver lol!

Le meiux c'est que tu me donne ton adresse msn pour que je t'envoie un screenshot!

D'ailleurs je te l'ai demadé dans le message perso que je t'ai envoyé!

Je comprends ce que tu veux dire! Mes textures sont ce qu'il y de plus
basique. Je charge un jpeg que je transforme en texture pour opengl, c
tout , ya de la transparence nulle part! Ensuite j'applique ma texture
terre sur les polys, paramétrée pour tout replacer ce qu'il y avait
avnt sur les poly puis j'applique la texture herbe ( enfin ca c'est
opengl qui le fait, moi je m'occupe juste de lui donner les coordonnées
dans les 2 textures) mais celle ci doit etre paramétrée pour qu'elle se
melange avec la texture terre au endroits voulus( mais ca c'est moi qui
va geré ca, pour l'instant pour tester j'applique le multitexturing sur
la map entiere) tout enconservant les zones d'ombres de lamap créées
par l'eclairage!



Mais pour l'instant je n'ai rien de tout ca c bien ca le prb! J'ai
seulement des melanges entre les 2 textures au endroits ou il doit y
avoir de la penombre , de l'herbe uniquement aux endroit qui doivent
etre sombre , et de le terre aux endroits eclairés..vraiment tres
bizarre comme effet! J'aurais voulu le faire expres j'y serait pas
arrivé!!
0
Rejoignez-nous