Que recherchez-vous ?
Engine & platform
De nouvelles façons d'appliquer l'illumination globale à vos mondes dans Unity 6
STEVEN KENT / UNITYProduct Manager Engine Graphics
Jul 11, 2024|21 Min
Unity 6 Nouvelles caractéristiques d'éclairage de Global Illumination

Nous sommes ravis de partager plus de détails sur les nouvelles fonctionnalités d'éclairage qui seront intégrées à Unity 6 dans le courant de l'année.

Grâce à la nouvelle architecture robuste de cuisson des lumières et à l'approche innovante de la création d'environnements éclairés par des sondes de lumière à l'aide des volumes de sondes adaptatifs (APV), vous bénéficierez d'un processus de création de lumière plus rationalisé . Cela améliorera considérablement vos images tout en garantissant des performances élevées lors de l'exécution.


Illuminez votre monde avec l'illumination globale

Si vous avez déjà travaillé avec des données d'éclairage précalculées, vous savez à quel point le processus peut être fastidieux. Le processus de précalcul pour les Lightmaps peut prendre beaucoup de temps ; les UV des Lightmaps doivent être créés, les sondes doivent être placées pour que les objets dynamiques soient éclairés correctement, et vous devrez gérer des textures volumineuses qui peuvent peser lourdement sur la mémoire d'exécution de vos applications.

Dans Unity 6, nous avons ajouté une nouvelle façon de créer des environnements éclairés par sonde lumineuse de meilleure qualité grâce aux volumes de sonde adaptatifs (APV), et nous avons apporté des améliorations fondamentales au backend de cuisson de la lumière pour une plus grande stabilité.

Volumes de sondes adaptatives

Un volume de sondes adaptatives est un groupe de sondes lumineuses qu'Unity place automatiquement en fonction de la densité de la géométrie dans votre scène, afin de créer un éclairage indirect.

Le volume de la sonde adaptative est automatiquement rempli par une structure 3D de "briques".
Les volumes de sondes adaptatives sont automatiquement remplis d'une structure 3D de "briques". Chaque brique contient 64 sondes lumineuses, disposées dans une grille de 4 × 4 × 4.

En raison de sa nature adaptative, APV génère des sondes plus denses dans les zones plus géométriques et moins de sondes dans les zones où les objets sont moins denses, comme l'arrière-plan d'une scène.

Les volumes de sondes adaptatives vous offrent également une suite complète de fonctions puissantes pour créer des environnements magnifiquement éclairés.

  • Simplification des flux de travail pour le placement des sondes et accélération de l'itération pour l'éclairage indirect diffus basé sur des sondes lumineuses.
  • L'éclairage APV par pixel offre une qualité nettement supérieure à celle des groupes de sondes lumineuses et une meilleure directionnalité par rapport aux cartes lumineuses, ce qui permet d'obtenir une excellente qualité d'éclairage globale.
  • S 'intègre parfaitement aux effets atmosphériques, ce qui permet d'obtenir des effets tels que le brouillard volumétrique dans HDRP et les particules VFX Graph dans URP et HDRP qui sont magnifiquement éclairés par la lumière indirecte.
  • Permet des transitions d'éclairage visuellement étonnantes grâce à l'occlusion du ciel et aux scénarios d'éclairage, qui conviennent aux situations d'heure de la journée et d'allumage/extinction des lumières.
  • Permet de mieux contrôler les optimisations pour les performances d'exécution, en fonction de votre utilisation du pipeline de rendu et du matériel cible.
  • Exécute une suite de fonctions de diffusion en continu, permettant aux données de la sonde lumineuse d'être diffusées du disque au processeur, et du processeur au GPU.
  • Fournit un ensemble d'outils puissants pour réduire les fuites de lumière.
APV s'intègre parfaitement aux atmosphères
APV s'intègre parfaitement aux atmosphères, ce qui signifie que les effets tels que le brouillard volumétrique dans HDRP et les particules VFX Graph dans URP & HDRP sont maintenant magnifiquement éclairés par un éclairage indirect. Utilisez le projet [HDRP] Gate Backyard dans l'Asset Store.
Voici comment nous avons converti la scène Oasis de l'URP pour utiliser APV

Le projet URP 3D Sample utilise actuellement les dernières fonctionnalités de 2022 LTS.

Pour les besoins de la démonstration, nous avons mis à jour les scènes URP 3D Sample de 2022 LTS vers Unity 6 Preview et la fonctionnalité Adaptive Probe Volumes.


La scène Oasis convertie pour utiliser les volumes de la sonde adaptative
La scène de l'Oasis a été convertie de 2022 LTS à Unity 6, en appliquant des volumes de sonde adaptatifs pour l'éclairage indirect.
Placement de sondes avec des volumes de sondes adaptatifs

APV est un système basé sur le volume qui automatise le placement des sondes plutôt que de les placer à la main.

L'onglet des paramètres généraux d'APV vous permet de contrôler des paramètres tels que Minet Max Probe Spacing pour piloter la création de plusieurs niveaux de subdivision en fonction de la géométrie environnante. Par défaut, les zones denses utiliseront la résolution la plus élevée, tandis que les zones moins géométriques utiliseront des niveaux de densité plus faibles. Ce comportement automatique et adaptatif garantit une allocation efficace des ressources, en se concentrant sur les domaines où elles sont le plus nécessaires.

 Spécifier les niveaux de subdivision qu'APV doit utiliser dans la fenêtre d'éclairage.
Dans la fenêtre d'éclairage et l'onglet Volume de sonde adaptatif, vous pouvez spécifier les niveaux de subdivision qu'APV doit utiliser.

Pour générer automatiquement des sondes, vous pouvez créer un volume de sondes adaptatif. Pendant que vous travaillez, vous pouvez voir les mises à jour en direct, ce qui vous permet de prévisualiser l'emplacement du palpeur sans avoir à le cuire. Ces mises à jour sont basées sur les briques et les niveaux de subdivision que vous avez préalablement définis, qui s'ajustent ensuite en fonction de la proximité de la géométrie voisine.

Pré-visualiser les différentes briques de sondes en temps réel avant la cuisson
Le mode de débogage Live Updates permet de visualiser les différentes briques de sondes en temps réel avant la cuisson.
Générer de l'éclairage

Generate Lighting calcule à l'avance toutes les données d'éclairage, y compris les sondes lumineuses, que vous pouvez visualiser dans votre scène. La prévisualisation à l'aide de briques permet de voir les différents niveaux de subdivision qui ont été appliqués lors du placement des sondes.

Les sondes et les multiples niveaux de subdivision peuvent être affichés à l'aide du débogueur de rendu.
Les sondes et les multiples niveaux de subdivision peuvent être affichés à l'aide du débogueur de rendu.
Relever les défis de la fuite de lumière

Si vous avez déjà travaillé avec des données de sondes optiques, vous connaissez peut-être les problèmes courants liés aux fuites de lumière. Lors du développement d'APV, nous avons ajouté toute une boîte à outils pour résoudre les problèmes de fuites de lumière, comme le décalage virtuel, la dilatation, les volumes d'ajustement des sondes, les couches de rendu et les modes de prévention des fuites de lumière "Performance" et "Qualité".

En voici un exemple. En utilisant les vues de débogage de l'éclairage, nous pouvons observer un cas d'utilisation problématique pour les fuites de lumière. Dans cette situation, la lumière vive provenant de l'extérieur est visible à travers les murs et le sol du bâtiment. À l'extérieur, le problème est inverse : un éclairage sombre s'échappe de l'intérieur. Cela est probablement dû à la faible résolution (1 mètre entre les sondes) et aux parois minces. Voyons comment nous pouvons y remédier.

Les fuites de lumière sont particulièrement visibles dans les zones où l'éclairage change radicalement et où les murs sont minces.
Lors de l'inspection de la vue de débogage de l'illumination globale, les fuites de lumière sont particulièrement visibles dans les zones où l'éclairage change radicalement et où les murs sont minces.

Pour étudier ce problème, l'option Debug Probe Samplingvous permet d'afficher chacune des sondes échantillonnées ainsi que leurs poids respectifs. Dans notre cas, nous pouvons voir que le résultat est interpolé entre les sondes lumineuses de l'extérieur et les sondes sombres de l'intérieur. Idéalement, l'intérieur de la tente ne devrait échantillonner que les sondes intérieures.

Option Debug Probe Sampling pour comprendre comment les sondes sont échantillonnées
L'option Debug Probe Sampling est excellente pour comprendre comment les sondes sont échantillonnées lors de l'exécution et pour identifier les problèmes potentiels.

Rendering Layers for APV(introduit dans 6000.1f.1) vous permet de créer jusqu'à quatre masques différents et de restreindre l'échantillonnage à ces masques spécifiques pour certains objets. Cela peut s'avérer extrêmement utile pour empêcher les objets intérieurs d'échantillonner les sondes extérieures, et vice versa.

Lors de la génération de l'éclairage, le système attribue automatiquement des couches aux sondes pendant le processus de cuisson en fonction des objets à proximité, ce qui élimine la nécessité d'attribuer manuellement des couches à chaque sonde. Une fois cela fait, vous pouvezGenerate Lighting et observer que les fuites sont réduites pour la tente, grâce à la création manuelle de masques distincts pour l'intérieur et l'extérieur.

La fuite de lumière peut être améliorée quelle que soit la résolution de la sonde
Au moment de l'exécution, les objets échantillonnent les sondes en fonction de la couche à laquelle ils sont affectés, ce qui améliore les problèmes de fuite de lumière quelle que soit la résolution de la sonde.

Pour mieux contrôler la prévention des fuites de lumière, vous pouvez utiliser les modes de réduction des fuites d'Unity "Performance" et "Qualité".

Le mode Performance permet de réduire les fuites en éloignant le lieu d'échantillonnage des sondes non valides. Cette méthode fonctionne généralement bien dans les scénarios simples, où il est possible d'identifier un lieu d'échantillonnage approprié pour toutes les sondes valides, tout en évitant les sondes non valides. Toutefois, en fonction de la configuration de la sonde, il se peut qu'il n'y ait pas d'emplacement optimal pour l'échantillonnage. Il en résulte un échantillonnage de sondes non valides et des fuites potentielles.

Le mode qualité (introduit dans la version 6000.0.3f1), désormais activé par défaut, utilise jusqu'à trois tentatives d'échantillonnage pour s'assurer que seules les sondes valides sont utilisées. Ce mode peut introduire un léger surcoût sur les performances d'exécution, qui peut être particulièrement perceptible sur les plates-formes bas de gamme.

Vous pouvez combiner la réduction des fuites et les couches de rendu pour éviter encore plus de fuites de lumière. Ce mode permet de s'assurer que les sondes non valides, que ce soit en raison de problèmes de validité ou parce qu'elles se trouvent sur une couche différente, ne sont pas échantillonnées.

Le mode qualité permet de réduire les fuites de lumière.
Contrairement au mode Performance, le nouveau mode Qualité permet de réduire les fuites de lumière.
Relever les défis posés par les coutures

En outre, nous avons amélioré les niveaux de subdivision multiples en réduisant les raccords potentiellement visibles entre les différents niveaux (débarqué dans la version 6000.0.4f1). Ceci est réalisé automatiquement en remplaçant les valeurs des sondes frontières situées entre deux niveaux par des valeurs pré-interpolées. Comme ce processus a lieu au moment de la cuisson, il n'y a pas de coût de performance associé au moment de l'exécution.

L'élimination automatique des coutures permet de dissimuler les lignes visibles entre les niveaux de subdivision.
Dans la vue de débogage de l'illumination globale, il est évident que la suppression automatique des joints aide à dissimuler les niveaux de subdivision en créant des transitions douces entre eux.
Des expériences visuelles plus dynamiques grâce aux transitions d'éclairage APV

Avec APV, vous pouvez obtenir des transitions d'éclairage visuellement étonnantes grâce à l'occlusion du ciel et aux scénarios d'éclairage, qui conviennent aux situations d'heure du jour et d'allumage/extinction des lumières.

Vous trouverez ensuite deux exemples de transitions d'éclairage, d'abord à travers les Scénarios d'éclairage avec APV dans la scène Oasis du projet URP 3D Sample, puis à travers l'Occlusion du ciel avec APV dans la scène Jardin.

Ajouter des scénarios d'éclairage avec APV dans l'Oasis

L'APV facilite la réalisation de divers scénarios d'éclairage en permettant la commutation ou le mélange de données d'éclairage cuites. Cette fonction est particulièrement utile pour simuler des heures de la journée ou pour alterner entre des lumières allumées et éteintes au sein d'une même scène ou d'un même set de cuisson.

Les scénarios d'éclairage ne gèrent que les données de la sonde lumineuse APV cuite ; les autres éléments doivent être traités manuellement. Pour donner un exemple dans la scène de l'Oasis, nous avons créé un script pour mettre à jour le ciel, les lumières, les paramètres du brouillard et les sondes de réflexion. Les scénarios de cuisson APV peuvent être gérés au moment de l'exécution à l'aide de l'API ProbeReferenceVolume; un exemple peut être trouvé dans la documentation.

Cette scène utilise un scénario Jour/Nuit pour cuire plusieurs versions de l'éclairage diffus indirect créé avec APV.
Cette scène utilise un scénario Jour/Nuit pour cuire plusieurs versions de l'éclairage diffus indirect créé avec APV.
Plusieurs scénarios peuvent être combinés pour créer des transitions fluides entre le jour et la nuit.
L'éclairage indirect diffus provenant de plusieurs scénarios peut être mélangé pour créer des transitions douces entre le jour et la nuit. Pour ce faire, l'API ProbeReferenceVolume permet d'exposer une variable de mélange qui peut être animée, par exemple, à l'aide de la ligne de temps.
Tirer parti de l'occlusion du ciel avec APV dans le jardin

L'occlusion du ciel offre une alternative aux scénarios d'éclairage pour gérer les transitions d'éclairage dans la scène. Il s'agit d'une configuration plus simple, avec une seule cuisson, qui ne nécessite pas de scénarios multiples. En revanche, l'occlusion du ciel gère exclusivement l'éclairage du ciel et ne s'étend donc pas à la gestion de l'éclairage indirect pour les lumières directionnelles ou ponctuelles.

Séquence d'images décrivant l'application de l'occlusion du ciel dans la scène du jardin.
La scène du jardin utilisant la fonction Sky Occlusion. Dans cette séquence d'images, vous pouvez observer d'abord la sonde ambiante seule, puis l'éclairage combiné de la sonde ambiante et de l'occlusion du ciel, puis spécifiquement la contribution de l'occlusion du ciel elle-même. Enfin, nous avons fourni la représentation de débogage de l'occlusion APV.

L'occlusion du ciel utilise des données de cuisson supplémentaires pour gérer l'éclairage du ciel différemment, ce qui est distinct de la cuisson du ciel APV standard. Ces données stockent la quantité de lumière du ciel que chaque zone de la scène doit recevoir, ce qui permet d'ajuster la couleur et l'intensité de l'éclairage du ciel pendant l'exécution. L'utilisation d'une sonde d'ambiance dynamique au moment de l'exécution, en plus de ces données d'occlusion cuites et statiques, permet d'obtenir une bonne approximation de l'éclairage du ciel, tout en permettant des ajustements dynamiques de l'éclairage de la scène.

L'occlusion du ciel est prise en charge à la fois par l'URP et le HDRP. Dans le HDRP, la sonde ambiante est mise à jour automatiquement à partir du ciel physique du HDRP. Dans URP, cependant, lorsque l'on utilise le mode Skybox, la sonde d'ambiance ne peut pas se mettre à jour automatiquement et en temps réel lorsque le ciel change. Pour cela, il faut animer manuellement la couleur à l'aide du mode Dégradé ou Couleur pour qu'elle corresponde aux images animées du ciel, car Unity ne s'adapte pas automatiquement aux changements de couleur du ciel.

Si l'on prend l'exemple de la scène du jardin, le mode dégradé des paramètres de l'environnement permet d'animer manuellement la couleur ambiante de la sonde. Associée aux données d'occlusion, cette configuration permet de créer une approximation convaincante pour animer l'éclairage diffus du ciel, adaptée à la représentation des changements d'heure de la journée. Cette méthode utilise une seule cuisson sans scénarios d'éclairage multiples et permet d'obtenir une large gamme de variations de couleurs.

Les données d'occlusion associées au mode dégradé dans les paramètres de l'environnement permettent d'animer manuellement la couleur ambiante de la sonde.
Les données d'occlusion associées au mode dégradé dans les paramètres de l'environnement permettent d'animer manuellement la couleur ambiante de la sonde. Utilisation de la boîte à ciel dynamique Azure[Sky] de l'Asset Store pour le shader du ciel.
Plus d'informations sur APV
Cuisson légère dans Unity 6

Avec la nouvelle architecture de Light Baking d' Unity livrée dans Unity 6, le GPU Light Baker n'est plus disponible en avant-première.

Environnement architectural d'intérieur cartographié en lumière. Crédit de contenu : ArchvizPRO Interior Vol.10
Environnement architectural d'intérieur cartographié en lumière. Crédit de contenu : ArchvizPRO Interior Vol.10

La nouvelle machine à pain légère a été conçue en tenant compte de la réactivité de l'éditeur et de la vitesse de cuisson. Cela signifie que lors de l'utilisation de la cuisson à la demande, Unity prend désormais un "instantané" de l'état de la scène lorsque l'on clique sur le bouton Generate. Unity ne vérifie plus l'état de la scène à chaque image, ce qui nuisait auparavant aux performances de l'éditeur.

Ce backend de cuisson remanié a considérablement simplifié notre base de code, ce qui facilite et accélère la correction des bogues et réduit le risque d'en introduire de nouveaux.

Nouveau profil de cuisson

Nous vous proposons également un nouveau profil de cuisson qui vous permet de choisir l'objectif de votre flux de travail.

Le nouveau light baker vous permet de choisir l'intention de votre flux de travail, de l'utilisation la plus faible de la mémoire aux performances les plus élevées.
Le nouveau light baker vous permet de choisir l'intention de votre flux de travail, de l'utilisation la plus faible de la mémoire aux performances les plus élevées.

Vous pouvez choisir une fourchette allant de "l'utilisation la plus faible de la mémoire" - idéale si vous souhaitez continuer à travailler dans l'éditeur et obtenir la meilleure réactivité globale de l'éditeur - à "la performance la plus élevée", qui est utile si vous souhaitez effectuer le travail le plus rapidement possible et que vous n'avez pas besoin de travailler sur autre chose dans l'éditeur pendant le temps de cuisson.

La génération automatique est maintenant le mode de prévisualisation du débogage interactif de l'IG.

La création itérative et le dépannage des données d'éclairage cuites est un cas d'utilisation important pour les créateurs qui utilisent l'illumination globale (IG) cuite.

C'est pourquoi nous avons ajouté une nouvelle fonctionnalité de prévisualisation interactive aux différents modes de dessin de la vue de scène liés à l'IG, en remplaçant la génération automatique d'Unity par un mode de prévisualisation interactif de débogage de l'IG dédié à la prévisualisation des données d'éclairage.

Mode interactif de prévisualisation du débogage de l'IG dans Unity 6
Mode interactif de prévisualisation du débogage de l'IG dans Unity 6

Cela permet de mettre à jour les vues de débogage de manière interactive au fur et à mesure que la scène est modifiée. La prévisualisation est non destructive, puisqu'elle ne remplace pas les données d'éclairage cuites.

L'abandon de l'ancienne architecture Auto-Generate de Unity nous permet d'optimiser le pipeline de cuisson pour une plus grande stabilité.

Avis de dépréciation de Enlighten Realtime GI

Notez que Unity 6 est la dernière version supportée par Enlighten Realtime GI. Vous pouvez trouver plus de détails sur la trajectoire de dépréciation que nous avons communiquée précédemment dans le message du forum "Update on Global Illumination 2021".

En savoir plus sur les fonctionnalités d'éclairage fournies avec Unity 6

Voici les liens vers les précédentes demandes de commentaires, pour les versions bêta 2023.1, 2023.2 et Unity 6 (2023.3) respectivement :

Nous sommes impatients de voir vos créations utilisant les nouvelles fonctionnalités d'éclairage de Unity 6. N'hésitez pas à nous faire part de vos commentaires dans le forum Global Illumination ou dans le nouvel espace de discussion d' Unity !