TrainGlass
Le shader TrainGlass.fx sert à recréer les parties translucides d'un objet, par exemple le vitrage du matériel roulant.
Textures
Bien qu'il puisse n'y avoir qu'un seul matériau avec ce shader, il faudra cependant spécifier deux textures. Les deux textures peuvent pointer vers le même fichier, mais si la seconde texture est différente de la première, la seconde permet de simuler un effet de reflet (environment map) sur la géométrie à laquelle ce matériau a été affecté.
Paramétrage
La plupart des paramètres importants se règlent dans la partie UV Arguments du panneau Shader configuration du matériau. Les paramètres sont numérotés de 1 à 6, mais seuls les 3 premiers sont utilisés :
- Définit la rugosité du matériau, c'est-à-dire l'aspect de l'éclairage spéculaire. La valeur doit être comprise entre 0 et 64. 0 correspond à une surface rugueuse (grand reflet aux contours flous), 64 correspond à une surface polie (petit reflet aux contours nets).
- Définit l'intensité de l'effet environment mapping de jour. La valeur doit être comprise entre 0 et 1. 0 = pas de reflet ; 1 = reflet intense.
- Définit l'intensité de l'effet environment mapping de nuit. La valeur doit être comprise entre 0 et 1. 0 = pas de reflet ; 1 = reflet intense.
Un autre paramètre important se règle dans le panneau Lighting Material, il s'agit de Specular power qui correspond à la réflectivité du matériau qui joue sur l'intensité du reflet spéculaire. La valeur doit être comprise entre 0 et 8. 0 = pas de reflet ; 8 = reflet très présent.
Exemple
Dans l'exemple ci-dessous, vous aurez un aperçu du rendu de ce shader de jour et de nuit. Les 4 paramètres correspondant aux 3 cas A, B et C sont définis ainsi :
| A | B | C | |
|---|---|---|---|
| UV1 | 32 | 16 | 32 |
| UV2 | 0,5 | 0,75 | 0,75 |
| UV3 | 0 | 0 | 0,3 |
| Specular power | 8 | 4 | 1 |
Voici le résultat correspondant :
Source et illustrations : The Art of RailWorks: Shaders and kuju materials - TrainGlass.fx (Derek Siddle)
| Tout sur les shaders | |
|---|---|
| Pixel shaders de base | TexDiff |
| Pixel shaders à effets | TrainLightMapWithDiffuse |
| Vertex shaders | WaterCubeMap |

