Track : Développement de jeux Skill-Family : Fondation Étiquettes : Rendu Tags: Éclairage Tags: Éclairage de l'environnement Tags: Nuages Topic-image: volumetric-cloud-topic-image.png Hero-image: volumetric-cloud-hero-image.png Social-image: volumetric-cloud-social-image.png version: 5.1
Le composant Nuage volumétrique est un système de rendu de nuages basé sur des critères physiques qui utilise une approche orientée sur les matériaux pour donner aux artistes et aux concepteurs la liberté de créer tous les types de nuages dont ils ont besoin pour leurs projets. Le système de nuages gère des configurations dynamiques en fonction de l'heure de la journée, et peut être utilisé en combinaison avec les composants Atmosphère du ciel et Lumière naturelle en utilisant le mode de capture en temps réel. Ce système fournit des nuages évolutifs et personnalisables qui peuvent s'adapter à divers projets en utilisant des vues au sol, le vol dans les airs et les transitions entre le sol et l'espace.
Mode de rendu des nuages
Auparavant, le rendu des nuages en temps réel pour les jeux et les cinématiques se faisait principalement à l'aide de matériaux statiques appliqués à un maillage de dôme céleste ou d'une approche similaire. Aujourd'hui, le système de nuages volumétriques fait appel à une texture de volume tridimensionnelle à défilement de rayons (ou ray-marching) pour représenter les couches de nuages en temps réel. Cette approche axée sur les matériaux offre une plus grande souplesse aux artistes et aux concepteurs pour créer tous types de nuages capables de se déplacer dans le ciel selon l'heure de la journée.
Dans les sections qui suivent, nous allons découvrir et décrire les éléments du système de nuages qui contribuent à leur rendu en temps réel.
Créer un volume de nuage par ray-marching
Les milieux qui composent les nuages nécessitent des simulations d'éclairage complexes qui sont soit impossibles soit trop coûteuses, pour une simulation en temps réel sur du matériel grand public. Le système de nuages volumétriques utilise le ray-marching et l'approximation pour simuler le rendu des nuages afin d'obtenir des performances évolutives en temps réel sur de nombreux appareils et plateformes. Grâce à ce système, il est possible d'effectuer des simulations en temps réel en fonction de l'heure de la journée pour prendre en charge les différents effets de diffusion de la lumière, les ombres créées par les nuages, la contribution de la lumière du sol sur la couche inférieure des nuages, etc.
Diffusion multiple de la lumière
Les faisceaux lumineux qui traversent un volume ont la capacité de se diffuser sur les particules présentes dans le volume avant d'atteindre votre œil ou le capteur d'une caméra. Cet effet de lumière, appelé diffusion multiple, définit l'apparence des nuages. Les gouttelettes qui composent un nuage donnent généralement un albédo proche de la valeur 1, ce qui signifie que la lumière n'est presque jamais absorbée dans le volume. La lumière qui n'est pas absorbée passe à travers le volume, ce qui rend l'effet de diffusion très complexe dans le processus. L'effet de diffusion multiple des milieux constitutifs a une incidence sur le déplacement de la lumière dans le volume de nuages ; c'est ce qui donne aux nuages un aspect à la fois lumineux et d'une grande densité.
Pour contourner la complexité de la diffusion multiple dans le rendu en temps réel, il convient d'utiliser une approximation de la diffusion réaliste en traçant plusieurs octaves (ou étapes) de transmission de la lumière dans le matériau du volume. L'expression Sortie volumétrique de matériau avancé vous permet de définir le nombre d'octaves utilisées, ainsi que la quantité de contribution de diffusion multiple, d'occlusion et d'excentricité générées.
L'exemple ci-dessous montre la différence entre l'absence d'octave (diffusion simple), l'utilisation d'une octave et l'utilisation de deux octaves d'approximation de diffusion multiple. L'utilisation de plusieurs octaves applique des approximations de diffusion supplémentaires à votre matériau de nuage, mais rend le shader plus coûteux dans le processus.
Pour les projets de jeux, il est recommandé de n'utiliser qu'une seule octave de diffusion multiple de la lumière pour des raisons de performance. Il est cependant possible d'utiliser des valeurs de contribution élevées et des valeurs d'occlusion faibles dans l'expression Matériau volumétrique avancé de votre matériau de nuage pour obtenir un effet similaire sans impact sur les performances. Consultez la section sur les matériaux volumétriques ci-dessous.
Vue du sol :

Déplacez le curseur pour modifier le nombre d'octaves d'approximation de diffusion multiple utilisées de 0 à 2.
Vue de plus haute altitude :

Déplacez le curseur pour modifier le nombre d'octaves d'approximation de diffusion multiple utilisées de 0 à 2.
Occlusion et ombrage des nuages
Un aspect important des nuages est dû à la manière dont ils occultent la lumière et projettent des ombres sur les surfaces. L'occlusion et l'ombrage des nuages sont principalement gérés par les lumières de l'atmosphère et le matériau de volume utilisé pour représenter le nuage. Ces composants vous permettent de contrôler différents facteurs qui définissent l'aspect de vos nuages, notamment la présence de rayons de soleil ou l'effet d'ombre provoqué par les nuages proprement dits.
Ray-marching sur le volume et cartes d'ombres
Il existe deux modes d'effets d'ombres, que vous pouvez activer/désactiver dans le matériau utilisé pour les nuages : le mode par défaut À défilement de rayons et le mode Cartes d'ombres brassées (BSM).


L'effet d'ombre de volume à défilement de rayons fait appel au ray-marching pour obtenir des ombres nettes et colorées, mais présente une limite de distance de lancer en raison du nombre limité d'échantillons pouvant être utilisés. Les ombres à défilement de rayons conviennent aux transitions entre le sol, le ciel et l'espace, même si elles sont plus coûteuses.
- Les cartes d'ombres brassées utilisent les cartes d'ombres en cascade pour prendre en charge les distances d'ombre lointaines pour les nuages et les ombres portées sur le sol. Leur rendu est plus rapide, mais elles sont moins précises et manquent de couleur volumétrique d'ombre propre. Les cartes d'ombres brassées sont généralement suffisantes pour les nuages vus du sol.
Pour les plateformes de console, telles que la Xbox One et la PlayStation 4 ou d'autres systèmes utilisant des spécifications similaires, les cartes d'ombres brassées sont recommandées pour créer des effets d'ombres de nuages.
Passez d'un mode à l'autre dans votre matériau de volume en ajoutant une expression Sortie de matériau volumétrique avancé à votre graphique de matériaux. Une fois le nœud sélectionné, cochez la case Ombre de volume à défilement de rayons dans le panneau Détails pour basculer entre deux types d'ombrages.
Interactions entre la lumière directionnelle et l'ombrage
Les lumières atmosphériques, notamment celles du soleil et de la Lune, permettent de contrôler les effets d'ombres des nuages et de l'atmosphère. Grâce à ces lumières, vous pouvez, entre autres, contrôler l'intensité des ombres ainsi que la distance à laquelle l'ombre des nuages se produit par rapport à la position actuelle de la caméra (en kilomètres), et indiquer si les nuages peuvent s'ombrer eux-mêmes et projeter des ombres dans l'atmosphère.
L'activation de la fonction Projeter les ombres des nuages sur une lumière atmosphérique permet au volume de nuage de créer des effets d'ombres sur les éléments de la scène et de projeter les rayons du soleil (également appelés rayons divins) dans l'atmosphère, ces derniers étant définis par le composant Atmosphère du ciel.


L'échelle de résolution de la carte d'ombres des nuages détermine la résolution et le coût de performance des puits de lumière. La réduction du rayon de la carte d'ombres des nuages autour de la caméra à l'aide de la propriété Étendue des ombres des nuages peut permettre d'ajuster la résolution de la carte d'ombres pour obtenir des résultats plus nets et de meilleure qualité.
Pour activer la projection d'ombres sur l'atmosphère et les nuages à partir d'objets opaques, utilisez les options Projeter les ombres sur l'atmosphère et Projeter les ombres sur les nuages. Pour créer des effets d'ombres sur des objets de grande taille, vous devez utiliser une distance d'ombre dynamique suffisamment élevée ou utiliser la propriété Distance d'ombre lointaine sur la lumière directionnelle en vue créer des ombres sur les objets dont l'indicateur Ombre lointaine est activé.
La simulation de la diffusion multiple de la lumière dans les milieux constitutifs à l'aide de l'approximation d'octave peut entraîner une certaine perte d'énergie. La propriété de lumière atmosphérique Échelle de luminance de diffusion des nuages permet de contrebalancer cette perte et de mettre à l'échelle la contribution de la lumière à l'aide d'un sélecteur de couleur, en vue d'obtenir une diffusion de la lumière plus intéressante et plus naturelle sans coût supplémentaire.
Voici quelques exemples avec différentes échelles de luminance de diffusion des nuages.
Cliquez sur l'image pour l'afficher à sa taille réelle.
Capturer la lumière du ciel en temps réel
Le composant Lumière naturelle fournit un mode de capture en temps réel qui gère les interactions avec l'atmosphère, les nuages, le brouillard de hauteur et les maillages opaques à l'aide d'un matériau non éclairé portant l'indicateur Ciel. Ce mode permet de créer des simulations dynamiques et naturelles en fonction de l'heure de la journée sans sacrifier les performances.
Pour en savoir plus sur le mode de capture en temps réel et les autres optimisations, consultez la page Lumière naturelle.
Occlusion ambiante des nuages de l'éclairage naturel
Il est important de créer des ombres ambiantes douces pour définir l'aspect naturel des nuages. Le composant Lumière naturelle utilise les propriétés Occlusion ambiante des nuages pour contrôler la quantité de lumière provenant de la contribution de la lumière naturelle et de la lumière atmosphérique que les nuages peuvent bloquer. Ces propriétés se trouvent dans la section Atmosphère et nuage du panneau Détails du composant Lumière naturelle.
Dans la comparaison ci-dessous, l'occlusion ambiante est activée avec une intensité accrue, ce qui permet de contrôler la contribution des lumières naturelle et atmosphérique en réduisant progressivement la quantité de diffusion multiple de la lumière.


La contribution de l'occlusion ambiante du composant Lumière naturelle sur l'atmosphère et les nuages peut être décrite comme suit :
- Coûts du tracé d'ombres :
- Lorsque vous utilisez le ray-marching secondaire par échantillon, le coût est déterminé par les valeurs configurées sur le composant Nuage volumétrique dont la propriété Compteur d'échantillons d'affichage des ombres est activée.
- Lorsque le nuage échantillonne la carte d'ombres brassées de lumière directionnelle (également utilisée pour projeter des ombres sur les maillages), une seule évaluation de la carte d'ombres est effectuée à chaque position sur laquelle le ray-marching est appliqué. La génération de la carte d'ombres brassées dépend des informations provenant de la configuration du composant Lumière directionnelle dont la propriété Compteur d'échantillons de rayons d'ombres des nuages est activée.
Configurer et utiliser les nuages volumétriques
Le système de nuages volumétriques est un élément essentiel des composants atmosphériques disponibles qui constituent le ciel et l'atmosphère de la planète. Consultez les sections suivantes pour commencer à configurer et à utiliser ces composants avec le système de nuages.
Configuration initiale du niveau
Créez un nouveau niveau (ou utilisez un niveau existant) contenant les composants suivants :
- Une lumière directionnelle dont l'option Lumière solaire atmosphérique est activée pour représenter le soleil ou la Lune.
- Un composant Atmosphère du ciel pour représenter l'atmosphère de la planète.
- Un composant Lumière naturelle dont l'option Capture en temps réel peut éventuellement être activée si vous souhaitez créer une simulation dynamique en fonction de l'heure de la journée.
- Un composant Nuage volumétrique affecté à un matériau de volume pour représenter les nuages dans le ciel.
Simplifiez la création et l'édition de composants atmosphériques dans votre niveau en utilisant le mélangeur de lumière environnementale. Cet outil fournit des paramètres pertinents pour chaque composant dans un seul panneau.
Pour en savoir plus, consultez la rubrique Mélangeur de lumière environnementale.
Qualités des reflets sur le ciel et les nuages
Le composant Lumière naturelle génère des reflets de scène pour les nuages volumétriques. Le composant Nuage volumétrique vous permet de contrôler le nombre d'échantillons utilisés pour appliquer le ray-marching sur les surfaces de réflexion dans la scène à partir du panneau Détails, sous la section Tracé de nuages. Vous pouvez mettre à l'échelle le nombre d'échantillons utilisés pour les reflets des nuages et pour les reflets des ombres des nuages.

Déplacez le curseur pour afficher l'augmentation progressive du nombre d'échantillons utilisés lors de la spécification du nombre d'échantillons de rayons de réflexion du nuage : 0,25, 0,5, 0,75, 1 (valeur par défaut), 2, 4, et 8.
Les propriétés Compteur d'échantillons de réflexion et Compteur d'échantillons de réflexion d'ombre sont fixes. Vous pouvez utiliser les commandes suivantes pour augmenter l'échelle et le nombre d'échantillons :
r.VolumetricCloud.ReflectionRaySampleMaxCountr.VolumetricCloud.Shadow.ReflectionRaySampleMaxCountr.VolumetricCloud.ViewRaySampleMaxCountr.VolumetricCloud.SampleMinCountr.VolumetricCloud.DistanceToSampleMaxCount
Consultez la rubrique Lumière naturelle pour en savoir plus sur son mode de capture en temps réel et ses propriétés de qualité de réflexion.
Modes de qualité du ray-marching
Le système de nuages offre des modes de qualité évolutifs qui s'adaptent à de nombreux types de jeux, des jeux standard aux jeux rapides qui nécessitent des mouvements entre le sol et l'espace. Il permet également d'obtenir une qualité cinématique pour les projets dont le fonctionnement en temps réel passe au second plan.
Les modes de qualité sont définis par la commande r.VolumetricRenderTarget :
- Modes réactifs prenant en charge les intersections de nuages avec des surfaces opaques, mais avec des tracés réalisés à une résolution inférieure :
* Il est recommandé d'utiliser le mode r.VolumetricRenderTarget.Mode 0 pour des raisons de qualité. Cette commande assure une dynamique de jeu rapide, notamment dans les jeux comportant des transitions entre le sol et l'espace, ou dans lesquels les personnages volent dans les nuages. Les nuages sont rapides à tracer, mais peuvent présenter une faible résolution. Les tracés se font au quart de la résolution, la reconstruction à la moitié de la résolution et le suréchantillonnage sur l'écran en haute résolution.
- Le mode r.VolumetricRenderTarget.Mode 1 assure un équilibre entre qualité et performances pour s'adapter à de nombreux types de jeux appropriés aux vues au sol. Ce mode est plus onéreux, mais offre une meilleure qualité. Les tracés se produisent à la moitié de la résolution, la reconstruction et le suréchantillonnage sur l'écran en haute résolution.
- Ce mode est moins réactif, mais offre une haute résolution :
- Le mode r.VolumetricRenderTarget.Mode 2 priorise une qualité supérieure tout en prenant en charge les vues au sol lors de jeux en temps réel. Ce mode offre un tracé rapide et un aspect haute résolution, mais ne prend pas en charge l'intersection des nuages avec les maillages.
- Le mode cinématique est obtenu en commençant par r.VolumetricRenderTarget 0 et en suivant les suggestions du flux de travail Obtenir une qualité cinématique (voir ci-dessous).
Il est par ailleurs possible d'améliorer (ou de réduire) la qualité pour les plateformes sur lesquelles vous avez l'intention d'effectuer un déploiement par le biais des commandes de console r.SkyAtmosphere. et r.VolumetricClouds.. De plus, les propriétés de l'utilisateur se trouvent dans le matériau du volume, ainsi que dans les composants Nuage volumétrique et Lumière directionnelle.
Obtenir une qualité cinématique
Ce flux de travail avancé contourne les optimisations utilisées par le moteur pour le rendu en temps réel des nuages et du ciel, et peut avoir un impact significatif sur les performances.
Pour obtenir une qualité cinématique (ou par pixel) pour les composants Atmosphère du ciel et Nuages volumétriques, vous devez faire appel à certaines commandes, définir des attributs dans votre matériau de nuage, et augmenter le nombre d'échantillons utilisés pour tracer l'atmosphère et le volume de nuage.


Pour obtenir des nuages et une atmosphère de la plus haute qualité dans votre projet, procédez comme suit.
- Définissez r.VolumetricRenderTarget sur 0 pour commencer à obtenir des résultats de qualité cinématique.
- Définissez r.VolumetricCloud.HighQualityAerialPerspective sur 1 pour obtenir une perspective aérienne cinématique des nuages en utilisant le ray-tracing de haute qualité plutôt que des tables de correspondance (LUT) de faible résolution.
- Définissez les éléments suivants sur le composant Nuage volumétrique :
- Sous la section Tracé de nuages, augmentez l'échelle du compteur d'échantillons pour Vue, Reflets et Ombres. Il est possible d'augmenter le nombre d'échantillons pour chacune de ces échelles à l'aide des commandes indiquées dans les infobulles respectives.
- Activez la propriété Utiliser la transmission de la lumière atmosphérique par échantillon pour appliquer la transmission atmosphérique par échantillon au lieu d'utiliser la transmission globale de la lumière directionnelle.
- Définissez les éléments suivants dans votre matériau de nuage de volume à l'aide de l'expression Sortie de matériau volumétrique avancé :
- Appliquer un éclairage de fond au bas des couches de nuages pour définir plus précisément la forme et la couleur des nuages dans la scène.
- Activez la propriété Contribution au sol dans le panneau Détails. Sur le composant Nuage volumétrique, utilisez la propriété Albédo du sol pour spécifier la couleur du sol utilisée pour éclairer le nuage du dessous par rapport aux rayons du soleil et à la lumière atmosphérique.
- Définissez le nombre d'approximations utilisées pour simuler la diffusion multiple de la lumière à travers le volume de nuage :
- Pour mieux simuler les effets de diffusion multiple de la lumière à travers le volume de nuage, augmentez le nombre d'octaves d'approximation de diffusion multiple utilisées, jusqu'à une valeur maximale de 2.
- La lumière se diffuse davantage dans le volume de nuage lorsque vous appliquez des octaves supplémentaires, ce qui signifie que vous devez ajuster les valeurs Contribution de la diffusion multiple et Occlusion de la diffusion multiple dans l'expression Sortie de matériau volumétrique avancé pour compenser.
- Appliquer un éclairage de fond au bas des couches de nuages pour définir plus précisément la forme et la couleur des nuages dans la scène.
- Activez les propriétés d'ombre suivantes des lumières atmosphériques :
- Définissez la propriété Projeter les ombres des nuages pour projeter les ombres des nuages sur les éléments de la scène et dans l'atmosphère.
-
Définissez la propriété Projeter les ombres sur les nuages pour projeter les ombres des objets opaques sur les couches de nuages.
* Choisissez parmi les améliorations de qualité suivantes pour le composant Atmosphère du ciel en fonction des besoins de votre projet :La lumière directionnelle doit avoir une distance dynamique de l'ombre suffisamment élevée pour projeter efficacement les ombres des objets de grande taille sur les nuages.
- Choisissez parmi les améliorations de qualité suivantes pour le composant Atmosphère du ciel en fonction des besoins de votre projet :
- Améliorez la qualité générale du rendu de l'atmosphère.
- Définissez r.SkyAtmosphere.FastSkyLUT sur 0. La désactivation de cette optimisation ralentit le rendu, mais produit moins d'artefacts visuels avec des détails haute fréquence qui peuvent apparaître dans l'ombre de la Terre ou le lobe de diffusion, entre autres.
-
Augmentez la qualité du tracé de l'atmosphère et des puits de lumière solaire dans l'atmosphère.
Vous devez pour cela activer
r.SkyAtmosphere.FastSkyLUT.- Définissez r.SkyAtmosphere.AerialPerspectiveLUT.FastApplyOnOpaque sur 0.
- Sur le composant Atmosphère du ciel, utilisez le curseur de qualité Compteur d'échantillons de tracés pour ajuster le nombre d'échantillons utilisés. Si la plage maximale n'est pas suffisante, utilisez la commande
r.SkyAtmosphere.SampleCountMaxpour sélectionner une limite plus élevée et saisissez manuellement une valeur dans le champ de propriété. - Améliorez la qualité des puits de lumière solaire en augmentant les tailles des LUT définies avec les commandes r.SkyAtmosphere.FastSkyLUT.Width et r.SkyAtmosphere.FastSkyLUT.Height.
- Améliorez la qualité du brouillard sur les surfaces opaques et transparentes en augmentant la taille de r.SkyAtmosphere.AerialPerspectiveLUT.Width.
Soyez prudent lorsque vous augmentez cette valeur, car il s'agit d'une texture de volume 3D qui augmente la consommation de mémoire.
- Améliorez la qualité générale du rendu de l'atmosphère.
Matériau volumétrique
Un matériau qui fait appel au domaine de matériau Volume façonne les nuages en utilisant des textures de volume. Une texture de volume est une texture 3D découpée en plusieurs textures 2D alignées sur une grille. Ces types de textures dans un matériau sont utilisés pour obtenir différents effets volumétriques, comme la fumée et les nuages, car ils permettent de rendre efficacement certains effets tels que la lumière se déplaçant dans un volume.
La texture de volume ci-dessous représente une série d'images bidimensionnelles dans une grille (à gauche) qui, une fois empilées, forment une représentation de volume tridimensionnel (à droite).
Ouvrez et visualisez une texture de volume avec l'éditeur de texture pour afficher sa vue d'image bidimensionnelle (à gauche) ou sa vue de volume tridimensionnel (à droite).
Outre les attributs personnalisables dans le composant et le matériau Nuage volumétrique, la texture de volume est un élément fondamental permettant de définir l'aspect initial de votre nuage et d'autres propriétés. C'est en effet grâce aux textures de volume que vous pouvez créer de nombreux types de nuages et d'effets différents dans votre matériau.
Dans les exemples ci-dessous, nous vous présentons plusieurs types de nuages créés à l'aide d'un matériau de volume unique et de paramètres ajustables via l'instanciation. Dans le cadre de cet exemple, nous utilisons le fichier M_volumetricCloud_02_Profiles_Soft disponible dans le contenu du plug-in Volumetrics (voir ci-dessous).
Votre matériau de volume possède des nœuds d'entrée et de sortie d'expression de matériau qui fournissent des attributs modifiables formant la base de votre matériau de nuage. Certains de ces paramètres ont une incidence sur les performances et augmentent ou réduisent le coût du shader.
Lors de l'utilisation de ces expressions, il est recommandé de paramétrer leurs valeurs dans une instance de matériau.
Contenu du plug-in Volumetrics
Ce plug-in n'est pas totalement optimisé pour l'appliquer dans vos projets ; utilisez-le à des fins de démonstration. Il est également susceptible de changer ou d'être supprimé dans de prochaines versions. Utilisez-le comme point de départ pour créer votre propre contenu dans l'éditeur.
Le plug-in Volumetrics contient des exemples et du contenu expérimental créés par les artistes techniques d'Epic, dont certains peuvent ne pas être spécifiquement conçus pour le rendu de nuages ou d'autres types d'outils utilisant le rendu de volumes, comme la simulation de fluides.
Procédez comme suit pour commencer :
-
Vous pouvez activer le plug-in dans le menu principal en sélectionnant Fenêtre > Plug-in. Recherchez le plug-in Volumetrics et activez-le.
Cliquez sur l'image pour l'afficher à sa taille réelle.
-
Dans votre tiroir de contenu/navigateur de contenu, cliquez sur Paramètres pour activer les options Afficher le contenu du moteur et Afficher le contenu du plug-in.
Cliquez sur l'image pour l'afficher à sa taille réelle.
-
Utilisez votre tiroir de contenu/navigateur de contenu pour rechercher et sélectionner le dossier Volumetrics où le contenu du plug-in est stocké.
Exemples de matériaux de nuages
Vous pouvez choisir parmi plusieurs types de matériaux de nuages dans ce plug-in. Utilisez-les pour créer différents types de nuages dans vos scènes.
Ces matériaux de nuages se trouvent dans le dossier /Content/Sky/Materials avec le préfixe M_Volumetric_Cloud_*. Par exemple, Content/Sky/Materials/M_Volumetric_Cloud_02_Profiles_Soft.
Pour les utiliser efficacement, créez une instance de matériau du matériau du nuage et appliquez-la à l'emplacement Matériau du composant Nuage volumétrique. Lorsque vous ouvrez l'instance de matériau, vous pouvez modifier les paramètres de rendu des nuages afin d'obtenir l'aspect, la densité et l'échelle souhaités, et bien plus encore.
La majorité des nuages dans les captures d'écran de cette documentation ont été créés à partir de ces exemples de matériaux de nuages, dont les paramètres ont été modifiés dans l'instance de matériau.
Placer des blueprints de nuages
Placez des acteurs de blueprint de nuages individuels dans votre scène en utilisant l'exemple de ce dossier de plug-in. Les blueprints placés individuellement dans la scène peuvent être mis à l'échelle, pivotés et déplacés le long des axes X et Y. Le composant Nuage volumétrique doit également être présent dans la scène, ainsi que le matériau de nuage attribué à utiliser. L'acteur de nuages Blueprint permet de personnaliser et de placer les nuages dans votre scène.
Consultez l'exemple dans le dossier /Tools/CloudCompositing/Maps de Composite_Cloud_Object Level. Analysez BP_CloudMask_Object et BP_CloudMask_Generator pour comprendre la façon dont cette scène est configurée et pour connaître les propriétés disponibles que vous pouvez ajuster sur cet acteur.
Nuages de blueprint peints
Commencez à peindre les nuages de vos ciels en utilisant cet exemple de configuration pour ajouter des nuages épars ou denses à votre scène. Dans cet exemple, nous utilisons un mode de jeu intégré à l'éditeur doté d'une interface utilisateur simple pour peindre des nuages à l'aide du curseur de la souris en vue de mettre à l'échelle le pinceau, son intensité, etc.
Consultez l'exemple dans le dossier /Tools/CloudCompositing/Maps du niveau Paint_Clouds. Sélectionnez l'acteur BP_PaintClouds pour découvrir certaines des propriétés que vous pouvez modifier pour peindre votre nuage.
Pour peindre les nuages, appuyez sur Jouer dans la barre d'outils principale pour lancer le jeu dans l'éditeur. Utilisez les éléments suivants pour commencer à peindre les nuages dans la scène :
- Le bouton gauche de la souris peint le volume de nuage.
- La molette de la souris met à l'échelle la taille du pinceau.
- L'utilisation de la touche Maj et de la molette de la souris modifie l'intensité des coups de pinceau.
- La touche Maj permet de supprimer les zones peintes lorsque vous peignez.
- L'utilisation du bouton droit de la souris et de la molette de la souris met à l'échelle la vitesse de peinture dans le nuage lorsque vous sélectionnez Vitesse dans la liste déroulante Mode de peinture des propriétés de BP_PaintCloud.
Performances et évolutivité
La gestion des performances et de l'évolutivité sur plusieurs plateformes est importante lors du développement de vos projets. Consultez les sections ci-dessous pour obtenir des informations sur la mise à l'échelle de la qualité des nuages et d'autres fonctionnalités pertinentes pour la capture et l'éclairage des nuages dans vos projets.
Plateformes prises en charge
Les composants Nuage volumétrique et Atmosphère du ciel prennent en charge les plateformes suivantes pour fournir un système d'atmosphère évolutif :
| Fonction | Mobile | XB1 / PS4 | XBX / PS5 | PC bas de gamme/haut de gamme |
|---|---|---|---|---|
| Atmosphère du ciel | OUI* | OUI | OUI | OUI |
| Nuages volumétriques | NON | OUI** | OUI | OUI |
* Nécessite un maillage Dôme céleste avec un matériau dont l'indicateur Fait partie du ciel est activé. ** Pour obtenir des performances acceptables sur ces plateformes, il est recommandé d'évaluer l'ombrage automatique des nuages en utilisant l'approche des cartes d'ombres au lieu du tracé secondaire mentionné dans la section Ray-marching de volume et cartes d'ombres.
Contrôler la qualité du tracé des nuages
Le système de nuages effectue un certain nombre de tracés dans le matériau de volume. La qualité du résultat tracé dépend du nombre d'échantillons utilisés. Plus le nombre d'échantillons utilisés est important, plus la qualité est élevée. À l'inverse, moins le nombre d'échantillons est élevé, plus la qualité est faible.


Selon les plateformes, il est important de trouver un équilibre entre performances et qualité. Les propriétés Tracé de nuages vous permettent de mettre à l'échelle la qualité de tracé des attributs clés des nuages, notamment les nuages dans les reflets, les échantillons d'ombre pour les nuages et les nuages dans les reflets, et la distance d'arrêt de l'ombrage des nuages par rapport à la caméra.
Chacune de ces propriétés possède sa propre commande de console qui peut être définie individuellement selon la plateforme à l'aide du fichier de configuration Profils d'appareils (*.ini). Vous bénéficiez ainsi d'une grande flexibilité lors de la définition de l'extensibilité cible sur différentes plateformes.
Optimiser votre matériau de nuage de volume
Le rendu des nuages commence avec votre matériau de volume et les expressions Sortie volumétrique avancée et Entrée volumétrique avancée qui sont utilisées dans le graphique des matériaux. Bien que vous puissiez paramétrer de nombreux aspects de votre matériau de nuage pour contrôler certains de ses attributs par le biais de l'instanciation des matériaux, d'autres ne peuvent être définis que sur ce nœud à partir du matériau de base.
Les suggestions suivantes sont définies sur l'expression Sortie volumétrique avancée et peuvent être utilisées indépendamment les unes des autres pour déterminer le mode d'optimisation du matériau de nuage de votre projet :
- Utilisez le matériau en niveaux de gris pour ne prendre en compte que le canal R (rouge) des paramètres de commande du matériau pendant l'évaluation. Dans votre scène, la réponse du matériau de nuage est en niveaux de gris, mais l'éclairage du matériau reste en couleur.
- Activez la propriété Contribution au sol si votre budget d'images le permet. Cette propriété augmente les coûts de tracé relatifs à l'échantillonnage de la contribution de l'éclairage ombragé du sol à la couche inférieure des nuages.
- Limitez le nombre d'octaves d'approximation de multidiffusion utilisées pour optimiser les performances dans le shader. Par défaut, cette propriété fait appel à la diffusion unique (0), mais peut utiliser un maximum de deux octaves d'approximation pour simuler l'effet de diffusion multiple de la lumière dans le volume de nuage.
- Utilisez la case à cocher Ombre de volume par ray-marching pour basculer entre le ray-marching secondaire du volume de nuage ou l'utilisation de cartes d'ombres en cascade. L'activation des cartes d'ombres en cascade (case décochée) permet d'améliorer les performances et d'obtenir une longueur infinie des ombres, même si elles deviennent moins précises et en niveaux de gris.
- L'attribut Densité conservatrice permet d'accélérer le ray-marching en ignorant l'évaluation coûteuse des matériaux plus tôt dans le processus. Le composant X du vecteur flottant (vecteur 3) représente la densité conservatrice du milieu constitutif. Lorsque la valeur est supérieure à 0, le matériau est évalué ; sinon, il évalue directement l'échantillon suivant. Pour en savoir plus, consultez la rubrique relative aux nuages volumétriques.
Établir un budget avec le mode de capture en temps réel du composant Lumière naturelle
Le mode Capture en temps réel du composant Lumière naturelle permet de répartir la capture d'une seule image sur plusieurs images grâce à un découpage temporel de 9 images. Cette optimisation améliore les performances de réalisation de simulations en fonction de l'heure du jour, ce qui la rend beaucoup moins coûteuse, car le coût du découpage temporel équivaut au coût de l'image la plus onéreuse. Elle vous donne la possibilité d'améliorer la qualité dans d'autres domaines de votre budget d'images sans coûts supplémentaires.
Par exemple, si vous envisagiez de décomposer les éléments de la scène capturée et leur coût par image, et constatez que la convolution spéculaire prend 0,8 milliseconde (ms) par image, mais que le ciel et les nuages ne prennent que 0,6 ms, vous avez encore de la marge dans le budget d'images pour augmenter légèrement la qualité du ciel et des nuages sans coût supplémentaire.
Évaluation conservatrice de la densité
La densité conservatrice a été ajoutée comme moyen d'optimiser le processus de ray-marching. L'évaluation de l'intégralité du graphique du matériau de nuage pour chaque échantillon à défilement de rayons dans l'atmosphère deviendrait rapidement trop coûteuse. Pour obtenir un meilleur rapport coût-efficacité, il est possible d'évaluer à peu de frais une densité conservatrice. Par exemple, l'évaluation du matériau pourrait être une texture bidimensionnelle descendante décrivant la densité des nuages, la seule condition étant que la densité conservatrice soit supérieure à 0 lorsque des nuages sont présents dans l'atmosphère lors de l'évaluation à l'aide de l'expression Entrée volumétrique avancée.
Lors du ray-marching de l'atmosphère, un échantillon de matériau de nuage est prélevé en deux étapes si la commande de densité conservatrice est utilisée :
- Sur le nœud Sortie volumétrique avancée, le graphique d'entrée de la densité conservatrice (vecteur 3) est évalué.
- Si la densité conservatrice de X (dans le vecteur 3) est supérieure à 0 :
- Une décision d'évaluation du graphique du matériau le plus cher relié au nœud Matériau principal (évaluant l'albédo, la couleur émissive et l'extinction) est utilisée.
- Il est possible d'accéder à ces valeurs en utilisant le nœud Entrée volumétrique avancée, ce qui évite de calculer les valeurs de densité conservatrices déjà évaluées à l'étape 1.
- Autrement, si la densité conservatrice de X est égale ou inférieure à 0, l'évaluation du matériau le plus coûteux est ignorée et vous passez à l'échantillon suivant.
L'Unreal Engine ne prend pas en charge la ramification dynamique dans son graphique de matériau. La commande Densité conservatrice permet une ramification dynamique afin d'éviter l'évaluation plus coûteuse des matériaux. Lorsque l'Unreal Engine prendra nativement en charge la ramification dynamique dans les matériaux, les commandes de ce type seront obsolètes et les artistes techniques pourront décider librement des éléments pouvant être dynamiquement ignorés.
Ray-tracing et nuages volumétriques
Le système de nuages ne prend pas en charge les fonctionnalités de ray-tracing et ne prend en compte que les nuages tels qu'ils sont rendus dans le composant Lumière naturelle. Le tracé des nuages volumétriques pour les reflets serait très coûteux en termes de performances.
Si vous souhaitez obtenir des reflets sur un objet dans le ciel, il est préférable de placer l'acteur Lumière naturelle plus près de celui-ci (dans le ciel).