Engine-Concept : Conception des visuels, rendu et graphiques Track: Développement de jeux Skill-Family: Foundation Étiquettes : Rendu Tags: Éclairage Étiquettes : Mobilité Étiquettes : Type de lumière Topic-image: SkyLight_Topic.png Hero-image: designing-visuals-rendering-and-graphics\RAndG_HeroBanner.png Version : 4.27
La lumière naturelle capture les parties distantes de votre niveau et les applique à la scène sous forme de lumière. Par conséquent, l'apparence du ciel et son éclairage/ses reflets correspondent, même si votre ciel provient de l'atmosphère, de nuages superposés sur une modélisation du ciel ou de montagnes lointaines. Vous pouvez par ailleurs spécifier manuellement une cube map à utiliser.
Capture de la scène
La lumière naturelle ne capture la scène que dans certains cas :
- Pour les lumières naturelles statiques*, les mises à jour sont exécutées automatiquement lors de la création de l'éclairage.
-
Pour les lumières naturelles fixes ou mobiles, les mises à jour sont exécutées une fois au chargement et ne se poursuivent que lorsque vous appuyez sur le bouton Recapturer, à moins que la fonctionnalité Capture en temps réel ne soit activée. Ces deux types de lumières sont accessibles via le panneau Détails ; vous pouvez également appeler le bouton Recapturer via le blueprint intégré au jeu.
Bouton Recapturer la lumière naturelle du panneau Détails
Si vous modifiez la texture utilisée par la modélisation du ciel, la texture n'est pas automatiquement mise à jour. Vous devrez utiliser l'une des méthodes ci-dessus pour la mettre à jour.
Il convient d'utiliser une lumière naturelle au lieu de la cube map d'ambiance pour représenter la lumière du ciel, car les lumières naturelles prennent en charge l'ombrage local, qui empêche le ciel d'illuminer les zones intérieures.
Mobilité
À l'instar des autres types de lumières, la lumière naturelle peut être définie sur l'une des mobilités suivantes :
| Mobilité | Description |
|---|---|
| Statique | Il est impossible de modifier l'éclairage en cours de jeu. Cette méthode de rendu est la plus rapide et permet d'obtenir un éclairage généré. |
| Fixe | Une fois l'éclairage créé, les ombres et les rebonds de lumière ne sont capturés qu'à partir d'une géométrie statique. Tous les autres éclairages sont dynamiques. Ce paramètre permet également à la lumière de changer de couleur, d'intensité et de cube map pendant le jeu, mais elle ne se déplace pas et permet un éclairage partiellement généré. |
| Mobile | Il est possible de déplacer l'éclairage et de le modifier dans le jeu selon les besoins. |
Lumière naturelle statique
Une lumière naturelle dont la mobilité est statique est complètement intégrée dans la lightmap des objets statiques du niveau et n'est donc associée à aucun coût. Lorsque les propriétés de la lumière sont modifiées, les modifications ne sont pas visibles tant que l'éclairage n'a pas été recréé pour le niveau.
Lorsque vous utilisez une lumière naturelle statique, seuls les acteurs et les lumières du niveau dont la mobilité est définie sur Statique ou sur Fixe sont capturés et utilisés pour l'éclairage. En outre, seule la contribution émissive de matériaux peut être capturée avec une lumière naturelle statique afin d'éviter une boucle fermée. C'est la raison pour laquelle vous devez vous assurer que le matériau d'une modélisation du ciel est défini sur Non éclairé.
Lumière naturelle fixe
Une lumière naturelle dont la mobilité est fixe bénéficie des ombres générées de Lightmass. Après avoir placé une lumière naturelle fixe dans votre niveau, vous devez recréer l'éclairage une fois pour obtenir les ombres générées. Vous pouvez alors modifier la lumière naturelle autant que vous le souhaitez sans avoir à la recréer. L'ombrage de la lumière naturelle que Lightmass génère stocke les informations d'occlusion directionnelle dans ce que l'on appelle une normale déviée.
Seuls les composants et les lumières dont la mobilité est statique ou fixe sont capturés et utilisés pour l'éclairage avec une lumière naturelle fixe.
Comme pour les autres types de lumières fixes, il est possible de modifier la couleur de l'éclairage direct au moment de l'exécution par le biais du blueprint ou de l'outil Sequencer. Néanmoins, dans la mesure où l'éclairage indirect est généré dans la lightmap, il est impossible de le modifier au moment de l'exécution. Pour contrôler l'intensité de l'éclairage indirect, utilisez IndirectLightingIntensity.


Lumière naturelle mobile
Une lumière naturelle dont la mobilité est mobile n'utilise aucune forme de précalcul. Elle capture les composants et les lumières, quelle que soit leur mobilité, à condition que la capture de scène soit configurée.
Occlusion ambiante des champs de distance
Pour utiliser cette propriété, les champs de distance de maillage doivent être activés dans les paramètres du projet.
L'ombrage d'une lumière naturelle mobile est assuré par l'occlusion ambiante des champs de distance à partir de volumes de champs de distance signés générés autour de chaque objet rigide. L'occlusion ambiante des champs de distance prend en charge les changements dynamiques de scène où les maillages rigides peuvent être déplacés ou masqués, ce qui a une incidence sur l'occlusion.
Cliquez sur l'image pour l'afficher à sa taille réelle.
Consultez la page Utiliser l'occlusion ambiante des champs de distance pour obtenir des informations et des exemples supplémentaires.
Lumière naturelle (statique ou fixe) précalculée
Lorsque vous utilisez l'éclairage généré avec une lumière naturelle statique ou fixe, les données d'éclairage et d'ombrage sont stockées dans des lightmaps. Les sections ci-dessous traitent de certaines de ces fonctionnalités prises en charge par Lightmass.
Améliorer la directionnalité de la lumière naturelle statique
Dans les versions de l'Unreal Engine antérieures à 4.18, les lumières naturelles statiques étaient représentées par Lightmass avec une harmonique sphérique de troisième ordre, ce qui ne permettait pas de capturer les détails d'un lever ou d'un coucher de soleil. Dans la version actuelle, une cube map filtrée est utilisée, ce qui donne une résolution plus élevée par défaut. Lightmass sélectionne aussi le MIP approprié de la texture cube map en fonction de la taille des rayons de la collecte finale pour éviter tout crénelage.
Pour obtenir un exemple de ce type d'interaction, accédez à Contenu du moteur > Modèles de cartes > Ciel et sélectionnez SunsetAmbientCubemap.


La plus grande différence peut être observée dans les scènes fortement occluses avec une cube map Lumière naturelle qui présente de nombreuses variations de luminosité et de couleur.
Chambre noire
Grâce à l'amélioration de la directivité des lumières naturelles statiques, il est désormais possible de recréer un effet de caméra à sténopé (chambre noire avec une ouverture suffisamment petite. Plus l'ouverture est petite, plus la lumière naturelle est directionnelle.
| Cube map de la source de lumière naturelle | Création de lumière résultante |
| Cliquez sur l'image pour l'afficher à sa taille réelle. | Cliquez sur l'image pour l'afficher à sa taille réelle |
Normale déviée pour les lumières naturelles fixes
Pour les lumières naturelles fixes, l'éclairage statique/fixe est généré séparément de l'éclairage mobile en utilisant Lightmass pour stocker les informations directionnelles dans ce que l'on appelle une normale déviée. Il s'agit de la direction entre le texel et la source de lumière ambiante la moins occluse. Les zones pratiquement occluses utilisent cette direction pour les lumières naturelles au lieu de la normale de surface, ce qui améliore la qualité dans les fissures.


La première image montre la lumière naturelle avec occlusion ambiante uniquement. La deuxième image montre la lumière naturelle avec occlusion de normale déviée. Observez la façon dont les surfaces dans les fissures « s'accordent » sur la provenance de l'éclairage.
Pour en savoir plus, consultez la page Carte de normales déviées.
Rebonds de lumière multiples
Les rebonds multiples de lumière indirecte provenant des lumières naturelles sont pris en charge via le paramètre Nombre de rebonds de la lumière naturelle dans Paramètres du monde > Lightmass.
Réglage du nombre de rebonds de la lumière naturelle à utiliser.


Pour que les multiples rebonds de la lumière naturelle soient perceptibles, vos matériaux doivent avoir une valeur d'éclairage diffus élevée dans la plupart des cas. Par exemple, avec une valeur d'éclairage diffus de 0,18 (18 % de gris), le deuxième rebond de la lumière naturelle ne contribue qu'à 18^3 = 0,006 de l'énergie émise par la lumière ; il est donc très subtil. Avec une valeur d'éclairage diffus de 0,5, le deuxième rebond de la lumière naturelle contribue à 0,125 de l'énergie émise par la lumière ; il est donc perceptible.
Dans la mesure où chaque rebond ajouté augmente les temps de création non distribués, utilisez-les avec précaution si vous ne faites pas appel à la distribution Swarm.
Capture en temps réel
Le mode Capture en temps réel fournit un éclairage dynamique et spéculaire de l'environnement, rendant ainsi possibles des simulations dynamiques en fonction de l'heure du jour avec des reflets en temps réel sur les éléments de la scène.
Ce mode est disponible lorsque la mobilité de la lumière naturelle est définie sur Fixe et Dynamique, et lorsque le paramètre Capture en temps réel est activé dans le panneau Détails du composant Lumière naturelle.
Ce mode prend en charge les composants suivants pour la capture des reflets et des ombres :
- Atmosphère du ciel
- Nuages volumétriques
- Brouillard de hauteur exponentielle
- Maillages Dôme céleste avec un matériau non éclairé portant l'indicateur Fait partie du ciel
Voici quelques points supplémentaires dont vous devez tenir compte lorsque vous utilisez ce mode :
- Le brouillard volumétrique n'est pas pris en charge.
- Un composant Atmosphère du ciel doit être présent dans la scène pour que la capture en temps réel fonctionne. Dans une prochaine version, la capture en temps réel sera prise en charge sans cette exigence.
- Le rendu des maillages est uniquement possible en mode Capture en temps réel en les désactivant du rendu dans la vue principale.
- Il est possible de disposer d'un maillage Dôme céleste différent pour la vue principale par rapport à la réflexion de la capture en temps réel lorsque vous activez le paramètre Visible dans les captures de ciel en temps réel sur les acteurs individuels.
- Le mode de capture en temps réel permet de projeter les ombres ambiantes des nuages volumétriques sur le monde lorsque l'option Occlusion ambiante des nuages est activée.
- Le mode de capture en temps réel est plus rapide et plus efficace que le nœud de blueprint RecaptureSky, car tous les calculs sont effectués sur le processeur graphique sans passer par un traitement du CPU, susceptible d'entraîner des interruptions ou des ralentissements dans le jeu.
- Si vous utilisez les nuages volumétriques, les performances peuvent varier considérablement en fonction de la complexité du matériau de nuage sélectionné. Vous pouvez contrôler le compromis de performance tout en respectant les éléments visuels de votre scène, en ajustant les valeurs Compteur d'échantillons de réflexion et Compteur d'échantillons de réflexion d'ombre du composant Nuages volumétriques.
Qualité de la réflexion
La qualité des reflets capturés par la lumière naturelle est définie par la propriété Résolution de la cube map. Des valeurs de puissance de deux (telles que 64, 128, 256, etc.) sont utilisées pour spécifier une résolution de texture pour la scène capturée.
N'oubliez pas que des valeurs de résolution supérieures augmentent la qualité au détriment des performances. La valeur spécifiée est appliquée au MIP (niveau de détail d'une texture) de cube map le plus élevé.

Déplacez le curseur pour observer les résolutions réduites (64), par défaut (128) et accrues (256) de la cube map Lumière naturelle en cours d'utilisation.
Notez que la fonction Reflets de l'espace écran (SSR) a été désactivée sur ces clichés. Les reflets ne sont que le résultat de la lumière naturelle.
Optimisation par découpage temporel
Le mode de capture en temps réel fait appel à une optimisation des performances appelée Découpage temporel pour répartir la scène capturée sur plusieurs images plutôt que d'effectuer un traitement complet de la scène à chaque image. Cette optimisation réduit le coût par image qui rendrait la capture en temps réel de tous les processus sur chaque image trop coûteuse sur certaines plateformes.
Par exemple, une capture effectuée sur la PlayStation 4 à l'aide d'une cube map HDR de 128 x 128 x 6 avec ciel et nuages volumétriques serait similaire à ce qui suit (mesurée en millisecondes) :
- Un processus complet par image pour une cube map de 128 x 128 coûterait environ 1,465 ms (coût réparti comme suit) :
- Le ciel et les nuages coûteraient 0,60 ms
- La génération du MIP de la cube map coûterait 0,05 ms
- La convolution spéculaire coûterait 0,80 ms
- L'irradiance diffuse coûterait 0,015 ms
- Le même processus réparti selon un découpage temporel à 9 images durerait au maximum 0,20 ms pour l'étape la plus coûteuse.
La répartition de la capture d'une seule image sur plusieurs images a l'avantage de maintenir la capture en temps réel de la lumière naturelle dans les limites d'un budget abordable pour votre projet, car le coût du découpage temporel équivaut au coût de l'image la plus onéreuse. Vous pouvez ainsi optimiser la qualité dans d'autres domaines, notamment la qualité du ciel ou des nuages, car vous avez un peu de marge dans le budget dédié aux images.
Le découpage temporel est activé par défaut, mais vous pouvez le configurer à l'aide de la commande de console r.SkyLight.RealTimeReflectionCapture.TimeSlice.
Ombrage d'objets mobiles
Pour obtenir un ombrage doux des objets mobiles sur l'environnement, vous pouvez utiliser les ombres de capsule pour les maillages squelettiques ou l'ombrage indirect des champs de distance pour les maillages rigides. Ceux-ci nécessitent une configuration distincte pour fonctionner correctement.
Propriétés
Il existe deux catégories de propriétés du composant Lumière naturelle (Lumière naturelle et Lumière), bien qu'elles ne soient pas différenciées dans l'interface utilisateur. Vous pouvez y accéder via le panneau Détails de l'acteur. Les propriétés de lumière naturelle sont propres aux acteurs Lumière naturelle, tandis que les propriétés de lumière sont communes à tous les acteurs Lumière. Certaines propriétés ne sont accessibles qu'en développant la section Paramètres avancés, comme indiqué dans le tableau ci-dessous.
| Propriété | Description | |||||
|---|---|---|---|---|---|---|
| Lumière naturelle | ||||||
| Capture en temps réel | Lorsque cette propriété est activée, le ciel est capturé et convolué pour obtenir un éclairage dynamique diffus et spéculaire. Les composants Atmosphère du ciel et Nuages volumétriques, ainsi que les dômes célestes avec des matériaux de ciel sont également pris en compte. | |||||
| Type de source | Cette propriété détermine s'il convient de capturer la scène distante et de l'utiliser comme source lumineuse, ou d'utiliser la cube map spécifiée. Lors de la capture de la scène, tout ce qui se trouve à une distance supérieure à la valeur Seuil de distance du ciel par rapport à la position de la lumière naturelle est inclus. INCLUDE:#sourcetype]
|
|||||
| Cube map | Cette propriété permet de spécifier la cube map à utiliser pour la lumière naturelle si le type de source est défini sur Cube map spécifiée par SLS. | |||||
| Angle de la cube map source | Angle de rotation de la cube map source lorsque le type de source est défini sur Cube map spécifiée par SLS. | |||||
| Résolution de la cube map | Résolution maximale pour le MIP du cube map traité au plus haut niveau. Il doit également s'agir d'une texture de puissance 2. | |||||
| Seuil de distance du ciel | Distance par rapport à la lumière naturelle à laquelle toute géométrie doit être traitée comme faisant partie du ciel (également utilisée par les captures de réflexion). | |||||
| Capturer uniquement les matériaux émissifs | Cette propriété capture uniquement les matériaux émissifs. Elle ignore tous les éclairages, ce qui rend la capture moins coûteuse. Cette propriété est recommandée lorsque vous utilisez la fonction Capturer chaque image. Il s'agit d'un paramètre avancé. | |||||
| Hémisphère inférieur de couleur unie | Cette propriété détermine si tous les éclairages de l'hémisphère inférieur doivent être remis à zéro. Cette propriété est utile pour éviter toute fuite de l'hémisphère inférieur. Il s'agit d'un paramètre avancé. | |||||
| Couleur de l'hémisphère inférieur | Utilisez le sélecteur de couleur pour sélectionner la couleur de l'hémisphère inférieur. Il s'agit d'un paramètre avancé. | |||||
| Lumière | ||||||
| Échelle d'intensité | Énergie totale émise par la lumière. | |||||
| Incidence sur le monde | Cette propriété détermine si la lumière peut avoir une incidence sur le monde, ou si elle est désactivée. | |||||
| Projeter les ombres | Cette propriété détermine si la lumière projette les ombres. | |||||
| Intensité de l'éclairage indirect | Cette propriété met à l'échelle la contribution de l'éclairage indirect de cette lumière. | Une valeur de 0 désactive toute illumination globale provenant de cette lumière. | ||||
| Intensité de la diffusion volumétrique | Intensité de la diffusion volumétrique de cette lumière. Cette propriété met à l'échelle l'intensité et la couleur de la lumière. | |||||
| Projette les ombres statiques | Cette propriété détermine si la lumière doit projeter les ombres des objets statiques. Pour l'utiliser, la propriété Projeter les ombres doit être définie sur True. Il s'agit d'un paramètre avancé. | |||||
| Projette les ombres dynamiques | Cette propriété détermine si la lumière doit projeter les ombres des objets dynamiques. Pour l'utiliser, la propriété Projeter les ombres doit être définie sur True. Il s'agit d'un paramètre avancé. | |||||
| Incidence sur l'éclairage translucide | Cette propriété détermine si la lumière a une incidence sur la translucidité. Désactivez-la pour faire gagner du temps au processeur graphique en présence d'un grand nombre de petites lumières. Il s'agit d'un paramètre avancé. | |||||
| Transmission | Cette propriété détermine si la lumière provenant de la lumière naturelle est transmise à travers des surfaces présentant des profils de diffusion en subsurface. | La lumière doit pour cela être mobile. Il s'agit d'un paramètre avancé. | ||||
| Projeter l'ombre volumétrique | Cette propriété détermine si la lumière projette les ombres du brouillard volumétrique. Il s'agit d'un paramètre avancé. | |||||
| Projeter les ombres profondes | Cette propriété détermine si la lumière doit projeter les ombres propres aux mèches de cheveux de haute qualité. | Lorsque cette option est activée, un coût de processeur graphique supplémentaire est appliqué à cette lumière. Il s'agit d'un paramètre avancé. | ||||
| Projeter les ombres à lancer de rayons | Cette propriété détermine si les ombres de la lumière sont calculées via les cartes d'ombres ou le ray-tracing (si cette technique est disponible). Il s'agit d'un paramètre avancé. | |||||
| Incidence sur les reflets par ray-tracing | Cette propriété détermine si la lumière a une incidence sur les objets dans les reflets lorsque la réflexion par ray-tracing est activée. Il s'agit d'un paramètre avancé. | |||||
| Incidence sur l'illumination globale par ray-tracing | Cette propriété détermine si la lumière a une incidence sur l'illumination globale lorsque l'illumination globale par ray-tracing est activée. Il s'agit d'un paramètre avancé. | |||||
| Distribution de la couche d'ombres profondes | Cette propriété permet de modifier la répartition des couches d'ombres profondes. 0 : linéaire (répartition uniforme des couches), 1 : exponentielle (davantage de détails sur les petites ombres proches). L'option Projeter les ombres profondes doit être activée. Il s'agit d'un paramètre avancé. | |||||
| Atmosphère et nuage | ||||||
| Occlusion ambiante des nuages | Cette propriété détermine si le nuage doit occlure la contribution du ciel à l'intérieur de l'atmosphère (atténuation progressive de la diffusion multiple) ou pas. | |||||
| Intensité de l'occlusion ambiante des nuages | Intensité de l'occlusion ambiante. Plus ces valeurs sont élevées, plus la lumière est bloquée. | |||||
| Étendue de l'occlusion ambiante des nuages | Rayon de l'espace du monde de la carte d'occlusion ambiante des nuages autour de la caméra, en kilomètres (km). | |||||
| Échelle de résolution de la carte d'occlusion ambiante des nuages | Cette propriété détermine l'échelle de la résolution de la carte d'occlusion ambiante des nuages. Pour fixer la résolution, utilisez r.VolumetricCloud.ShadowMap.MaxResolution. |
|||||
| Échelle d'ouverture de l'occlusion ambiante des nuages | Cette propriété contrôle l'angle d'ouverture du cône sur lequel l'occlusion du ciel due aux nuages volumétriques est évaluée. Une valeur de 1 prend en compte la totalité de l'hémisphère, ce qui entraîne une occlusion floue. Une valeur de 0 ne prend en compte qu'une seule direction d'occlusion (verticale), ce qui donne une occlusion nette. |
Limitations
Les fonctionnalités suivantes pourraient être utiles avec les lumières naturelles, mais ne sont pas encore implémentées :
- Les ombres douces des objets mobiles (personnages) sur l'environnement ne sont pas intégrées au composant Lumière naturelle et nécessitent actuellement la mise en œuvre de fonctionnalités distinctes avec un coût de rendu supplémentaire.
- Il est possible d'utiliser la fonction RecaptureSky() du blueprint de composant Lumière naturelle, mais elle présente un coût de traitement élevé et nécessite au moins 120 ms, ce qui entraîne une interruption ou un ralentissement du jeu.