WaterCubeMap
Le shader WaterCubeMap.fx permet de donner un rendu réaliste de l'eau (ou de n'importe quel liquide) en mouvement.
Objets liquides
Il existe plusieurs façons de créer des objets avec des parties liquides pour votre ligne :
- Cours d'eau : il est dans ce cas préférable d'utiliser une surface extrudée (loft), auquel on appliquera le shader WaterCubeMap.fx.
- Étendues d'eau (lacs et océans) : un transfert dédié (water decal) est disponible dans l'éditeur de lignes et a été optimisé pour cette application où les surfaces à couvrir sont grandes.
- Paysage : il est parfois intéressant d'avoir un effet de liquide en mouvement localisé au niveau d'un objet du décor. Dans ce cas on pourra utiliser le shader WaterScenery.fx.
Le créateur pourra, au cours de la réalisation d'un objet de décor, appliquer le shader WaterScenery.fx à n'importe quel polygone de son modèle. La forme de la surface liquide pourra alors être paramétrée par l'auteur lui-même. Les créations de ce type peuvent être exportées en suivant la procédure classique : fichier au format IGS utilisé dans un blueprint de décor (scenery blueprint).
Exemples d'utilisation
- Abreuvoirs
- Piscines
- Mares
- Châteaux d'eau à ciel ouvert
- etc.
Particularités
Il s'agit d'un vertex shader, c'est-à-dire qu'il est capable de déplacer la position des points de la géométrie concernée. Il s'agit donc d'un shader gourmand en ressources, ce qui veut dire qu'il faut l'utiliser avec parcimonie.
Voyez ci-dessous comment la surface de l'eau a perdu sa planéité, contrairement à ce que se serait passé avec un autre shader :
Comme vous pouvez le constater sur l'image ci-dessous, le shader fait intervenir 3 passes texture. Les 3 textures doivent être toutes renseignées. Les 3 emplacements texture (Slot 1, Slot 2 et Slot 3) correspondent à :
- La cartographie des normales (normal map), à laquelle on associe les 5 paramètres UV et le paramètre spéculaire.
- 1e texture de la surface du liquide.
- 2e texture de la surface du liquide.
Paramètres
Les paramètres UV suivants doivent être renseignés pour le 1er emplacement texture (Slot 1 pour la normal map) :
- Composante spéculaire (entre 0 et 64)
- Perturbation des oscillations (entre 0 et 1) - à vérifier
- Vitesse du mouvement (valeur conseillée : 0.02)
- Amplitude des oscillations (valeur conseillée : 0.02)
- Taille des vaguelettes (valeur conseillée : 6)
Source et illustrations : Shaders and kuju materials - WaterCubemap.fx (Derek Siddle)
| Tout sur les shaders | |
|---|---|
| Pixel shaders de base | TexDiff |
| Pixel shaders à effets | TrainLightMapWithDiffuse |
| Vertex shaders | WaterCubeMap |