Fr/Making a wall of water

From Valve Developer Community
< Fr
Jump to navigation Jump to search
Eau avec un shader "LightmappedGeneric".

Principe

Dans certains cas, créer de la fausse eau est une solutions. Par exemple vous voulez créer un mûr d'eau, car le shader "water" ne peut pas faire cà, il est limiter à une surface plane, non verticale. On utilise ici un shader courant : "LightmappedGeneric", avec des paramètres propre au shader "water".

Vous pourrez simuler des réflections avec des cubemaps, du brouillard seulement avec le matériaux "bottom", mais pas de réfractions. Tout comme le shader water il faut utiliser 2 VMT. Le BUMP utilisé sera celui fourni par Vavle et utilisé par les matériaux "water".

VMT top

Pour la texture "$basetexture", une image généré sous PS avec un filtre nuage conviens, faîte une couche alpha selon la transparence désirée.

"$basetexture" généré sous PS.


"LightmappedGeneric"
{
         "%compilewater" 1
         "$abovewater" 1
         "$surfaceprop" "water"
         "$bottommaterial" "..."
         "$basetexture" "dev/water_moving"  //texture basic
         "$bumpmap" "dev/water_normal"      //Normal map animée de Valve fournit avec le jeux
         "$translucent" "1"                 
         "$envmap" "env_cubemap"
         "$envmaptint" "[1 .9 .8]"
         "$envmapcontrast" "1"
         "$fogenable" "1"                
         "$fogcolor" "[ 1 1 1 ]"      
         "$fogstart" 0                    
         "$fogend" 50                
"Proxies"
{
    "AnimatedTexture"
          {
               "animatedtexturevar" "$basetexture"
               "animatedtextureframenumvar" "$frame"
               "animatedtextureframerate" 21.00
          }
    "AnimatedTexture"
{
               "animatedtexturevar" "$bumpmap"
               "animatedtextureframenumvar" "$bumpframe"
               "animatedtextureframerate" 21.00
          }
}
}

Vous remarquerez ici que la texture basic est animée, alors qu'il s'agit seulement d'une image, cela est nécessaire pour que le BUMP s'anime.

VMT Bottom

"LightmappedGeneric"
{
          "$basetexture" "..."
          "$translucent" "1"
          "$fogenable" "1"                 
          "$fogcolor" "[ 1 1 1 ]"      
          "$fogstart" 0                    
          "$fogend" 300                
}