Les textures éclairantes

From Valve Developer Community
Jump to: navigation, search
English
Exemple typique : Un long tube lumineux.

Il est possible sous Source d'émettre de la lumière à partir d'un brush, et plus précisément à partir de l'une de ses surfaces. Pour cela, il vous faut :

  • Une texture (VMT+VTF) ( A noter que vous pouvez utiliser une texture des lights/white fournies ou en créer une.)
  • Modifier le light.rad en y déclarant votre texture, suivie de la configuration du lighting que vous voulez (Sa couleur suivie du brightness, comme pour un light normal.).

Utilisation courante

Sous le moteur Source, il se peut que votre light_environment n'illumine pas suffisamment vos intérieurs par l'ouverture des fenêtres. Pour contrer ces problème, on créer devant les fenêtres, côté intérieur, un bloc avec une texture spécial lights/white appliquée sur la face qui REGARDE l'INTERIEUR. Vous obtiendrez alors un éclairage diffus et réaliste que votre light_environment n'aurait pas pu générer. Ces textures spéciales se trouve dans le dossier \light de HL2. /!\ A noter qu'il en existe plusieurs qui peuvent paraître identique (Lights/white001 et Lights/white002 par exemple). Détrompez-vous car ces textures possède en réalité une configuration différente dans le fichier light.rad, ce qui fera qu'elles n'éclaireront pas toute de la même manière (Différence de couleur, de brightness, etc etc) /!\

  • Exemple D'utilisation : Dans Autoroute 17, ce sont des grands blocs invisibles texturés de lights/white qui éclaire les entrées des tunnels. Dans la Citadelle, on notera aussi une très forte utilisation de texture light/white dans les enfoncements de certain murs.

VMT typique d'une vitre

"UnlitGeneric"  //shader non affecté par la lumière
{
       "$basetexture" "..." 
       "%compileNoChop" 1     //facultatif, rend les ombrages beaucoup plus prononcé
       "$selfillum" 1         //Illumine la texture, y compris dans le noir
       "$surfaceprop" "glass" 
       "$reflectivity" "[0 0 0]"
       "$nodecal" "1"         //Empêche l'apparation de decal (impact de balle par exemple) à sa surface.
}

Light.rad

Ce fichier est éditable avec un simple éditeur de texte. Il se trouve dans votre dossier de jeux à la racine (root). Certaines textures sont déjà déclarées dans le light.rad, dont les fameuses et très utilisées Lights/white.


  • Exemple :

Mon matériaux s'appelle glow1 et se trouve dans le dossier Lights. Je souhaiterais faire en sorte à ce que cette même texture puisse produire un éclairage vert très léger. Je vais donc insérer ceci dans mon light.rad :

lights/glow01 192 253 189 150

/!\ N'oubliez pas de rentrer le nom du dossier où se trouve la texture ! Imaginez que vous ayez 2 textures portant le même nom, à 2 endroits différents... /!\

La déclaration d'une texture d'un le light.rad se fait toujours de cette manière ; L'adresse de la texture, une tabulation, et la configuration de l'éclairage. Avec cette commande dans le light.rad lors de la compilation, VRAD va considérer la texture et ainsi calculer ses éclairages.

Vous pouvez aussi régler la diffusion de l'éclairage en modifiant le "scale", c'est à dire la taille de la texture dans hammer. On peut l'assimiler au paramètre "Constant" dans les lights basiques

Conseil d'utilisation

Il faut savoir qu'un bloc texturé d'une texture éclairante(qu'on appelle plus communément "une texture white") n'est pas invisible par défaut à partir du moment où vous appliquez dessus une texture de ce type. Si vous voulez peaufiner un éclairage, améliorer une source lumineuse très faible et autre, il va falloir que vous cachiez cette votre bloc avec la texture white, sous peine de voir apparaître dans le jeu un très vilain bloc avec une face aveuglante. Comment empêcher qu'une telle chose arrive ? Rien de plus simple ! Rendez invisible votre bloc ! Ce que je vous suggère donc, c'est :

  • Transformer votre bloc en brush entity
  • Paramétrez le en Func_illusionary
  • Allez dans Render Mode et choisissez "Dont Render"

(Certain préféreront faire cette manipulation en transformant le bloc en Func_brush. Libre à eux de le faire, la technique marche tout aussi bien.)


Autre conseil d'utilisation, pour votre optimisation. Imaginez que vous voulez cacher un extérieur très complexe et fourmillant de détails, le temps que vous être à l'intérieur d'un bâtiment lui même assez gourmand. Que faire ? Pourquoi pas cacher l'extérieur en appliquant derrière les fenêtre un bloc texturé d'une "texture white" ? Cela donne un rendu très artistique ! Attention quand même, car une surface blanche trop grande peut difficilement être explicable physiquement. Sachez faire preuve de créativité et de fantaisie, mais avec modération =)


Mise en garde

  • Faîtes très attention une fois encore avec son utilisation. Plus vous grandirez le scale de la texture, plus l'éclairage produit sera diffu et donc complexe à calculer pour Vrad.
  • Il est très rare de laisser le scale à 0.25*0.25 d'une texture éclairante. Je suis tout à fait d'accord que c'est la taille d'une texture par défaut,

mais l'éclairage produit avec de tels paramètres et tout simplement catastrophique. C'est pour cela que je vous invite à mettre au minimum un scale de .5*.5 à vos textures lumineuses.

  • Un scale petit peu très mal éclairer une salle, mais un scale très et trop grand peut mettre littéralement à genoux Vrad en lui ajoutant 8 bonnes heures de compilation

si vous avez mis un scale trop grand (20.0*20.0 par exemple). (Dans un de mes tests, le lighting d'une salle très simple peut devenir très complexe à calculer à partir de 8.00*8.00. Ne vous inquiétez pas donc.)

  • Une modification du lightmap sur la face d'un brush texturé en lights/white aura pour conséquence un espacement des sources lumineuses

normalement générées à surface de la texture (Le fonctionnement d'une texture éclairante peut-être comparé à celui d'un brush, avec pleins de light à sa surface).

Note|Si vous obtenez un message d'erreur quand vous enregistrez décochez l'option lecture seule.