Fr/True reflections under CSS

From Valve Developer Community
Jump to navigation Jump to search
Vraie reflections sous CSS.


Technique

Sous Source1, soit HL2, CSS, ... La seul facon d'obtenir de vrais réflections est d'utilisez le shader "water", soit pour l'eau. Les autres reflections sont obtenues par Cubemaps, qui permettent des reflections de basse qualité, suffisante pour des matériaux classic, mais pas pour un miroir qui demande une haute résolutions. Mais grâce à une astuce il est possbile d'obtenir des reflections en temps réels, cette technique consiste à superposer 2 matériaux, un shader normalen transaprence alpha, plus un water avec seulement les reflections. Cette techniques est idéal pour un sol, mais ne peux pas s'appliquer à un mûr, car le shader water ne fonctionne qu'à plat. Le shader water reflète tous sauf vous.

Cette technique est inutile pour la version Orange Box, car elle dispose d'une entitée pour les reflections temps réel, et elle peut s'appliquer à un mûr : Func_reflective_glass. OrangeBox dispose aussi du shader LightmappedReflective.

Pratique

Les 3 matériaux.

Il vous faut utiliser 3 couches de matériaux :

  • Un matériaux normal, en alpha, en surface, là ou les joueurs marcheront. Optionelle.
  • Un matériaux avec le shader Water, qui n'affichera que les reflections en temps réels.
  • un matériaux divers de recouvrement de l'eau, sinon elle ne fonctionnera pas correctement.


Matériaux de surface

Créer un Block d'une unitée et appliquer lui un matériaux avec alpha. Il est important de laisser un jeux, même de quelque dixième entre ce matériaux et l'eau, ou l'alpha ne fonctionera pas et vous aurez une sorte d'effet de floue.


Exemple :

"LightmappedGeneric"
{
         "$alpha" 0.6
         "$basetexture" "..."
}

Remarque : Il est possible de ne pas se servir ce matériaux, si par exemple vous voulez un sol en miroir.

Water

"Water"
{
          "%compilewater" 1
          "$reflecttexture" "_rt_WaterReflection"
          "$reflectamount" "0.1"  //plus la valeur est faible plus les vous aurez de reflections.
          "$reflecttint" "[1 1 1]"
          "$normalmap" "...."  //Indiquer une texture de couleurs unie, comme une texture blanche.
          "$fogenable" 0
          "$fogcolor" "{1 1 1}"
          "%compilepassbullets" 1  
}

Le paramètre de compilations "%compilepassbullets" 1 permet de rendre le matériaux insensible aux effets extérieurs, les balles et les joueurs qui marcheront sur ce matériaux n'aura pas d'effet. Ce paramètre est indispensable pour CSS, car les balles traverse les Block, chaque que vous tirez sur le sol vous aurez un SPLASH, ce qui n'est pas réaliste. Vous pouvez aussi grâce à ce paramètre de compilations courir sur cette surface, comme sur un miroir.

Matériaux de Recouvrement

Entourer de bloc votre eau, afin qu'elle fonctionne corectement, le matériaux n'à pas d'impotance.


Tutorial :

http://www.interlopers.net/tutorials/19882