Vraie réflexions sous CSS

From Valve Developer Community
Revision as of 09:18, 22 July 2009 by Anarkia777 (talk | contribs)
Jump to: navigation, search
Vraie réflexions sous CSS.

Sous Source1, soit HL2, CSS, ... La seul façon d'obtenir de vrais réflexions est d'utiliser le shader "water", soit pour l'eau. Les autres réflexions sont obtenues par Cubemaps, qui permettent des réflexions de basse qualité, suffisante pour des matériaux classique, mais pas pour un miroir qui demande une haute résolutions. Mais grâce à une astuce il est possbile d'obtenir des réflexions en temps réels, cette technique consiste à superposer 2 matériaux, un shader normal en transparence alpha, plus un water avec seulement les réflexions . 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é pour les réflexions temps réel, et elle peut s'appliquer à un mûr : Func_reflective_glass. Orange Box 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. Optionnelle.
  • Un matériaux avec le shader Water, qui n'affichera que les réflexions 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é 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 fonctionnera 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 correctement, le matériaux n'a pas d'importance.

Tutorial

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