Lumière, lampes et ombres

La lumière
Comment utiliser le Flesh Renderer
Astuces pour de meilleures performances

La lumière

( tr : Stefan Key)

Vous devez mettre des lumières dans votre niveau pour y voir quelque chose. Il y a deux sortes de lumières que vous pouvez utiliser.

- Les lumières émises par les objets 3D comme les static meshes et les "emitters". Ce sont les lanternes, les bougies, les feux de cheminée, les lumières magiques et ainsi de suite. On peut les trouver dans l'Actor browser, sous WorldObj > _Light.
- Les "basic lights", qu'on ne peut pas voir dans le jeu. On les place en faisant un clic droit dans une des fenêtres et en choisissant Add Light Here. Ce type d'éclairage est idéal pour créer une lumière ambiante où vous voulez illuminer une zone ou un objet sans avoir recours à un objet physique projetant une lumière.

Astuce : Activez le Flesh renderer pour voir instantanément les changements de lumières dans la fenêtre 3D.

Les Basic lights

Ces éclairages sont très simples à placer : faites un clic droit sur une surface dans la fenêtre 3D et sélectionnez Add Light Here du menu contextuel. Par défaut, on a une lumière blanche et brillante qui part dans tous les sens là où on a cliqué.

Les Light Actors (Objets 3D émettant de la lumière)

Il y a pas mal d'objets 3D en rapport avec l'éclairage dans le gamesys qui combinent les meshes et les sources de lumière, un peu comme les torches dans le moteur de Dark Project. Si vous mettez un objet 3D (objet, perso…) avec une torche, vous aurez un mesh qui aura une torche, une lumière et un émetteur de particules.

On peut avoir accès à un panel de "light actors" en faisant Actor > WorldObj > Light_

On peut ajouter à ces objets des propriétés modifiant l'éclairage comme pour les lumières normales, vous aurez une grande flexibilité de modification avec l'avantage d'avoir les meshes et les lumières liés ensemble.

Les propriétés pour la lumière

Comme pour d'autres objets du jeu, vous pouvez ajouter des propriétés aux lumières pour modifier leurs paramètres et avoir certains effets. Par exemple :

1. Sélectionnez une nouvelle lumière, faites un clic droit dessus et sélectionnez Light Properties
2. Déployez la dernière entrée des propriétés sous Light(1 selected)
3. Un ensemble de groupes de propriétés va apparaître, Lighting inclus.
4. Faites un clic droit sur Lighting et sélectionnez Add Property.
5. Sous Property Categories, Lighting devrait déjà être en surbrillance avec les propriétés qui lui correspondent.
6. Sélectionnez FleshLightType et cliquez sur le bouton Add Property en bas de la fenêtre.
7. Maintenant vous devriez avoir FleshLightType sous Lighting et vous avez le choix entre différents types (FL_Omni, FL_Spot etc.)

D'autres propriétés pour la lumière peuvent avoir encore plus de paramètres plus complexes et on peut les ajouter de la même manière.

Les propriétés disponibles

FleshLightType

- FL_Omni - Lumière omnidirectionnelle (OmniLight)
- FL_OmniNoShadow - c'est un OmniLight qui ne projette pas d'ombres
- FL_Ambient
- FL_AmbientVertex - semble mettre une lumière d'ambiance aux meshes les plus proches
- FL_Spot - Lumière de projecteur
- FL_SpotNoShadow - Lumière de projecteur sans ombre

Les lumières sans ombre sont très utiles car nécessitant moins de calcul du PC (On gagne en performance).

LightColor

Cette propriété vous permet de régler le HUE, la saturation, la brillance de la couleur de la lumière.

LightShape

Paramètres :
- DotBias
- LightCone - Seulement utile pour les spotlights (lumière de projecteur) ; si on l'augmente, la vitesse de diffusion de la lumière est augmentée, comme si on augmentait la taille de la base du cône de lumière.
- LightInnerRadius
- LightPeriod
- LightPhase - Ces deux propriétés concernent certainement les lumières animées.
- LightRadius - Pour les omnilights, c'est le radius de la sphère de lumière. Pour les spotlights, c'est la portée de la lumière (hauteur du cône de lumière).

LightDamping

C'est une propriété dont la valeur oscille entre 0 et 1. Elle adoucit la lumière pour donner un effet plus subtil. Elle peut diminuer légèrement la brillance et c'est un moyen simple pour réduire le niveau de lumière.

Commentaire sur cette propriété dans l'éditeur : "Fait décroître la lumière selon la valeur qu'on lui donne. 0 correspond au niveau de lumière original, 1 est l'obscurité totale."

Cette propriété peut être utilisée pour baisser la luminosité de plusieurs sources de lumière à la fois, même si elles ont une valeur différente.

FLLightTexture

La lumière va projeter une texture que vous aurez choisie. Cette propriété s'applique surtout pour les spotlights, vous aurez d'étranges résultats avec un omnilight.

Tout ce que vous avez à faire, c'est de taper un nom de texture convenable dans le paramètre Name. On l'utilise souvent pour simuler la lumière venant d'une fenêtre. Par exemple, dans le niveau du Musée, une fenêtre a la texture GENwindowint_P qui projette un dessin sur le mur opposé.

Les paramètres Length et Radius ne semblent pas importants ici.

Conseils éclairés

- Ayez à l'esprit les astuces au sujet des performances quand vous placez des sources de lumières et des objets projetant des ombres.

- Tout static mesh ou actor peut être transformé en lumière si on leur applique les propriétés de Lighting. Les lumières des objets disponibles dans l'Actor Browser ont leurs paramètres de lighting (lumière) réglés par défaut, mais on peut les modifier.

- Les lumières OmniNoShadow transperceront les murs BSP car ils ne projettent aucune ombre. Vous devrez certainement mettre un petit radius pour éviter cela. (Si vous voulez illuminer une grande zone, utilisez un grand nombre de lumières de ce type mais en conservant un petit radius pour chacune d'entre elles.)

- Vous devrez faire un Rebuild si vous modifiez le radius du cône de lumière d'un spotlight pour voir les changements dans le FleshRenderer.

- Si vous constatez que certaines parties d'un static mesh n'ont pas d'ombre, essayez d'augmenter le radius de la lumière qui projette l'ombre. Le problème vient du fait que l'ombre manquante tombe en dehors du radius de la lumière. Vous pouvez augmenter aussi ShadowExtrusionDistance mais ayez à l'esprit que cela utilise une échelle complètement différente de la propriété du radius.
Le ShadowExtrusionDistance peut aussi empêcher la lumière de "transpercer" les murs, comme par exemple à travers une porte. Le problème est que le radius de la lumière va au-delà du radius de l'ombre. Augmentez petit à petit la valeur du ShadowExtrusionDistance jusqu'à ce que le phénomène disparaisse.

- Si vous avez l'intention d'utiliser du brouillard (distance fog) dans votre map, vous pourrez utiliser un niveau plus bas de lumière d'ambiance (ambient lighting), car le brouillard a tendance à éclaircir les zones éloignées.

 

Tutoriels sur T3ed
t3ed.tutoriel.free.fr