Éclairage de la scène
Par défaut, une lumière ambiante est utilisée pour l'éclairage des objets rendus à distance. Pour la plupart des applications, un éclairage statique du ciel est déjà suffisant, mais vous pouvez ajouter d’autres sources de lumière dynamique à la scène.
Important
Seuls les matériaux à rendu physique réaliste sont sensibles aux sources de lumière. Les matériaux couleur et les nuages de points apparaissent toujours entièrement brillants.
Remarque
La projection d'ombres n'est actuellement pas prise en charge. Azure Remote Rendering est optimisé pour le rendu d'un nombre considérable de géométries, quitte à avoir recours à plusieurs GPU si nécessaire. Les approches classiques en matière de projection d'ombres ne conviennent pas à de tels scénarios.
Propriétés communes des composants liés à la lumière
Tous les types de lumière sont issus de la classe de base abstraite LightComponent
et partagent les propriétés suivantes :
Couleur : couleur de la lumière dans l’espace Gamma. Alpha est ignoré.
Intensité : luminosité de la lumière. Pour la lumière ponctuelle et la lumière projetée, l'intensité définit également la distance à laquelle la lumière éclaire la scène.
Lumière ponctuelle
Dans Azure Remote Rendering, le composant PointLightComponent
peut non seulement émettre de la lumière à partir d'un seul point, mais également à partir d'une petite sphère ou d'un petit tube, pour simuler des sources de lumière plus douces.
Propriétés du composant PointLightComponent
Rayon : le rayon par défaut est égal à zéro, auquel cas la lumière agit comme une lumière point. Si le rayon est supérieur à zéro, il agit comme une source de lumière sphérique, ce qui modifie l'apparence des surbrillances spéculaires.
Length : si les propriétés
Length
etRadius
ne sont pas nulles, la lumière agit comme un tube lumineux. Cela peut être utilisé pour simuler des tubes néon.AttenuationCutoff : si elle reste définie sur (0,0), l'atténuation de la lumière ne dépend que de son intensité (
Intensity
). Cependant, vous pouvez fournir des distances min/max personnalisées sur lesquelles l'intensité de la lumière est réduite linéairement à 0. Cette fonctionnalité peut être utilisée pour réduire la plage d'influence d'une lumière spécifique.ProjectedCubemap : si elle est définie sur un cubemap valide, la texture est projetée sur la géométrie environnante de la lumière. La couleur du cubemap est modulée par la couleur de la lumière.
Lumière projetée
Le composant SpotLightComponent
est semblable au composant PointLightComponent
mais la lumière est limitée à la forme d'un cône. L'orientation du cône est définie par l'axe z négatif de l'entité propriétaire.
Propriétés du composant SpotLightComponent
Radius : identique au composant
PointLightComponent
.SpotAngleDeg : cet intervalle définit l’angle interne et externe du cône, mesuré en degré. Tout ce qui se trouve dans l'angle intérieur est pleinement éclairé. Une atténuation est appliquée en direction de l'angle extérieur, ce qui génère un effet de pénombre.
FalloffExponent : définit la netteté des transitions entre l’angle intérieur et le cône externe. Plus la valeur est élevée, plus la transition est importante. La valeur par défaut 1.0 se traduit par une transition linéaire.
AttenuationCutoff : identique au composant
PointLightComponent
.Projected2dTexture : si elle est définie sur une texture 2D valide, l’image est projetée sur la géométrie à laquelle la lumière brille. La couleur de la texture est modulée par la couleur de la lumière.
Lumière directionnelle
Le composant DirectionalLightComponent
simule une source de lumière infiniment éloignée. La lumière éclaire dans la direction de l'axe z négatif de l'entité propriétaire. La position de l'entité est ignorée.
Il n'y a pas d'autres propriétés.
Considérations relatives aux performances
Les sources de lumière ont un impact significatif sur les performances de rendu. Utilisez-les avec précaution et uniquement si l'application l'exige. Toute condition d'éclairage global statique, y compris un composant directionnel statique, peut être obtenue avec une texture ambiante personnalisée, sans coût de rendu supplémentaire.
Documentation de l’API
- LightComponentBase, classe C#
- PointLightComponent, classe C#
- SpotLightComponent, classe C#
- DirectionalLightComponent, classe C#
- LightComponentBase, classe C++
- PointLightComponent, classe C++
- SpotLightComponent, classe C++
- DirectionalLightComponent, classe C++