#0 

11-11-2009 17:45:52

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Salut je me creuse la tête pour mon shader de splatting et j'avoue que c'est bien mal parti.
Je m'explique : Je fais un terrain auquel j'ajoute trois textures : 0 1 2, ou 0 est une texture d'herbe, 1 de terre et 2 le masque noir et blanc pour faire la transition.
Le shader marche à merveille mais le hic c'est que l'ideal serait que l'herbe et la terre soient scalés mais pas le masque (normal non?). Malheuresement je ne sais passer une texture à un shader que par l'intermédiaire d'une textureLayer  sur le node et je n'arrive pas à scaler une Layer indépendamment des autres.
J'ai éssayé ceci qui ne donne aucun résultat :

Code:

terrain->getMaterial(0).getTextureMatrix(0).setTextureScale(50,50);

Quelqu'un pourait m'éclairer de ses lumières svp wink


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#1 

11-11-2009 23:17:35

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Bon ben j'ai trouvé par moi-même la salution : il suffit de diviser les coordonées de la texture masque par le ratio appliqué en scaletexture.
ça sera plus parlant sur du code.

Après texturage du terrain :

Code:

terrain->scaleTexture(80,80);

et voici le pixel shader :

Code:

void main ( void )
{
    // Texture 1 : herbe
    vec4 herbe = texture2D ( Texture1 , gl_TexCoord[0] );
    // Texture 2 : terre pour les chemins
    vec4 terre = texture2D ( Texture2 , gl_TexCoord[0] );
    // Texture 3 : masque en noir et blanc
    vec4 mask  = texture2D ( Texture3 , gl_TexCoord[0]/80 ); // divise par 80

    vec4 color = mix(terre, herbe, mask.r);
    gl_FragColor = (color);
}

Me voilà donc parti sur mon terrain editing pour faire un truc bien joli wink


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
112 invités en ligne
Aucun membre connecté
RSS Feed