dimanche 16 mai 2010

Textures combinées

J'ai souvent eu des soucis à rendre mes textures de terrain jolies. Mon plus gros problème, généralement, est l'effet de répétition. Surtout avec les textures moches du genre de celles que je créé moi-même. Prenons par exemple cette simple texture d'herbe.



On applique la texture à ce terrain, et hop, l'effet de répétition prend toute sa mesure. C'est moche!



En même temps, si l'on réduit la répétition de la texture, c'est moche aussi, car la texture semble grossière et peu détaillée.



Mais si l'on calcule la moyenne des deux, avec un facteur qui évite la répétition, comme par exemple 16 et 3.44 (!), tout d'un coup, ça rend beaucoup mieux! Pas d'artefacts de répétition, mais la texture maintient l'impression de détail.



En plus, ce genre de calcul est trivial à effectuer avec le petit shader:


gl_FragColor =
diffuse
* (texture2D(grassTex, t * 16)
+ texture2D(grassTex, t * 3.44)) / 2;


L'on multiplie la couleur diffuse calculée à partir de l'éclairement par la moyenne des textures, en multipliant les coordonnées de la texture par nos facteurs.

Aucun commentaire: