#1 

11-11-2009 16:45:52

TUpac
Membres
Avatar de TUpac
Date d'inscription:
Messages: 387
IP: 88.168.3.38
Courriel

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 :

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


#2 

11-11-2009 22:17:35

TUpac
Membres
Avatar de TUpac
Date d'inscription:
Messages: 387
IP: 88.168.3.38
Courriel

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 :

terrain->scaleTexture(80,80);

et voici le pixel shader :
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é
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
152 invités en ligne
membre en ligne: -
RSS Feed