L'acteur Volume hétérogène permet d’effectuer le rendu des matériaux de domaine-volume qui échantillonnent Sparse Volume Textures. Cet acteur prend en charge le rendu en temps réel des volume et avec le Path Tracer. Les acteurs de volume hétérogène peuvent rendre des matériaux Sparse Volume Textures statiques ou animés.
À gauche, une SVT statique en volume unique ; à droite, une SVT animée.
Travailler avec des acteurs de volume hétérogène
Appliquez le flux de travail suivant pour utiliser des volumes hétérogènes dans votre projet :
- Importer un fichier VDB pour créer une ressource Sparse Volume Textures dans l’Unreal Engine.
- Configurer un matériau de volume-domaine qui échantillonne une ressource de SVT.
- Ajouter un acteur de volume hétérogène à la scène et lui assigner un matériau de SVT.
Importer des fichiers VDB
Pour commencer, vous devez disposer d’un fichier VDB (ou base de données de voxels) à importer dans le navigateur de contenu.
Procédez comme suit pour importer un fichier VDB :
- Faites glisser-déposer le fichier VDB directement dans le navigateur de contenu.
- Utilisez le bouton Import (Importer) dans le navigateur de contenu.
Les fichiers VDB ont leur propre fenêtre d'importation pour l’importation de fichiers VDB statiques et animés.
Vous avez la possibilité d'importer un fichier VDB statique ou animé. Les fichiers VDB statiques incluent uniquement le fichier unique et ses données de volume stockées, tandis que les VDB animés sont un ensemble de fichiers individuels numérotés séquentiellement. Les VDB animés n'ont besoin d'importer qu'un seul fichier VDB numéroté séquentiellement pour importer le VDB animé dans son intégralité.
Les VDB peuvent inclure différents attributs stockés avec leurs données. Celles-ci peuvent être divisées entre l'attribut A et l'attribut B. La recommandation générale est de diviser les données entrantes en deux attributs d'échantillonnage où les premières données d'attribut sont importées au format unorm 8 bits et les secondes données d'attribut sont au format float 16 bits.
En ce qui concerne les projets chez Epic Games, nous préférons envoyer la densité au format unorm 8 bits et transmettre toutes les autres données via la liste d'attributs float 16 bits de l'importation.
Les transformations importées sont appliquées automatiquement avec un volume hétérogène. Si la transformation a été créée avec le pivot à l'origine, qui est généralement l'un des coins du volume, vous pouvez cocher la case Pivot at Centroid (Pivot au centre) pour déplacer le pivot vers le centre du volume. Cependant, sachez que forcer le pivot vers le centre du volume peut finir par interrompre la transformation.
Pour plus d'informations spécifiques à l'importation et à l'utilisation de Sparse Volume Textures, voir Sparse Volume Textures.
Configurer un matériau de SVT
Pour des informations détaillées sur la configuration d'un matériau avec une SVT et son utilisation dans un matériau, voir Sparse Volume Textures.
Les volumes hétérogènes nécessitent un matériau basé sur un volume qui échantillonne une texture de volume clairsemé. Ces matériaux utilisent le nœud Sparse Volume Texture Sample pour échantillonner une SVT, que vous pouvez utiliser en conjonction avec un volume hétérogène, un brouillard volumétrique ou plusieurs, ou tout autre matériau basé sur un volume.
L'Unreal Engine inclut un exemple de matériau de SVT vide déjà configuré auquel vous pouvez appliquer votre ressource de SVT. Il se trouve dans le répertoire suivant du navigateur de contenu : Engine > Engine Materials (Moteur > Matériaux du moteur), et est nommé SparseVolumeMaterial. Copiez ce matériau et créez-en une instance.
Après avoir ouvert l'instance de matériau, remplacez le paramètre SparseVolumeTexture et appliquez votre propre ressource de SVT importée au créneau d’assignation.
Configurer un volume hétérogène
Procédez comme suit pour configurer un volume hétérogène :
- À l'aide du panneau Placer des acteurs, recherchez et ajoutez un acteur de volume hétérogène à la scène.
- L'acteur étant sélectionné, utilisez le panneau Détails pour assigner un matériau de SVT à l'acteur.
- [Facultatif] Si vous avez importé un VDB animé, vous devrez cocher les cases Playing (Lecture) et Looping (mise en boucle) dans la section Animation.
Propriétés de l’acteur de volume hétérogène
Les acteurs de volume hétérogènes ont les propriétés suivantes :
| Propriétés | Description |
|---|---|
| Matériaux | |
| Élément [N] | Créneau d’assignation de matériau pour un matériau basé sur un volume qui échantillonne à partir d’une texture de volume clairsemé. |
| Volume | |
| Résolution du volume | La résolution du volume est déterminée automatiquement et ne peut pas être modifiée lors du rendu avec une SVT. |
| Pivot au centre | Déplacer le pivot vers le centre du volume. Notez que les transformations ont été créées avec le pivot à l'origine, qui est généralement l'un des coins du volume, selon la manière dont elles ont été créées. Forcer le pivot vers le centre du volume peut interrompre la transformation. |
| Animation | |
| Image | Afficher l’image actuelle de la SVT en cours de rendu. Lorsque la case Playing n'est pas cochée, vous pouvez spécifier une image particulière d’une SVT animée. |
| Fréquence d’images | La vitesse à laquelle les images doivent être lues. |
| Image de départ | L’image avec laquelle la SVT animée doit commencer. Elle est liée à la plage disponible de la SVT importée. |
| Image de fin | L’image avec laquelle la SVT animée doit se terminer. Elle est liée à la plage disponible de la SVT importée. |
| Lecture | Lorsque cette option est activée, la SVT animée est lue une seule fois. |
| Mise en boucle | Lorsque cette option est activée, la lecture de la SVT animée est répétée depuis le début, de l'image de départ à l'image de fin. |
| Transformation d’image | |
| Chargement dynamique de texture de volume clairsemé | |
| Envoyer des demandes de blocage | Le système de chargement dynamique reçoit une notification de blocage lors de la mise à jour des données par image de texture de volume clairsemé. Cette option n'est pas recommandée pour la lecture en temps réel, mais elle peut être utile pour le rendu cinématique lorsque le système de chargement dynamique charge des niveaux de MIP élevés pour maintenir une fréquence d’images en temps réel. |
| Biais de Mip pour le chargement dynamique | Définir le niveau de texture de la SVT en cours de rendu. Une valeur inférieure correspond à une densité et une qualité du volume plus élevées. Les valeurs élevées ont une densité et une qualité moindres. |
| Éclairage | |
| Facteur de pas | Ce facteur ajuste la taille de pas de l'intégrateur de ray-marching pour qu'il se produise à un multiple de la résolution du volume. En augmentant ce facteur, le marcheur fait des pas plus longs et privilégie les performances au détriment de la qualité. |
| Facteur de pas d'ombre | Ce facteur ajuste la taille de pas des calculs d'ombre du ray-marcher. En augmentant ce facteur, le marcheur fait des pas plus longs et privilégie les performances au détriment de la qualité. |
| Facteur de biais d'ombre | Ce facteur ajuste le biais de voxel initial appliqué lors du calcul des ombres. L’augmentation de ce facteur réduit l’auto-ombrage, mais peut introduire une fuite de lumière. |
| Facteur de sous-échantillonnage d'éclairage | Ce facteur ajuste la résolution du volume d'un cache d'éclairage interne. L'augmentation du facteur réduit efficacement la résolution de fonctionnement, diminuant ainsi la mémoire système et augmentant les performances. Cela a pour effet de diminuer la qualité. Bien que la SVT soit nativement clairsemée, le cache d'éclairage interne est actuellement dense. Le cache d'éclairage interne n'alloue actuellement pas une résolution de volume supérieure à 1024 x 1024 x 512 voxels. |
Animation
La propriété Animation fournit des règles personnalisées pour la lecture. Par défaut, les propriétés Start Frame et End Frame sont liées à la plage disponible de la SVT importée, mais peuvent être rognées pour ne lire qu'une partie de l'animation de la SVT. La lecture est censée se produire à une vitesse "cinématique" de 24 images par seconde, mais elle peut être ajustée selon les besoins.
La SVT est jouée de manière interactive dans la scène lorsque la case Playing est cochée, et la lecture est répétée en continu lorsque la case Looping est cochée. Lorsque la case Playing n'est pas cochée, vous pouvez faire un clic gauche dans la zone de texte simple Frame (Image) et faire glisser le curseur vers la gauche ou la droite pour parcourir la lecture des images disponibles de la SVT.
Éclairage
Le modèle de rendu différé utilise le ray-marching lors du rendu de ressources volumétriques de haute qualité avec l'acteur de volume hétérogène. Chaque propriété Factor (facteur) réglable est relative à la propriété Volume Resolution (résolution du volume). La résolution de la SVT importée a une corrélation directe avec les performances d'exécution.
Blueprints
Dans les blueprints, vous pouvez utiliser les nœuds Play et Set Playing pour déclencher le démarrage et l'arrêt des données d'animation.
Utiliser des volumes hétérogènes avec un Path Tracer
Vous pouvez créer des volumes hétérogènes avec le plug-in Niagara Fluids ou instancier un acteur de volume hétérogène dans vos scènes. Le rendu de ces volumes commence lorsque le Path Tracer est activé.
Exemple de volume hétérogène Niagara Fluid rendu avec le Path Tracer.
Pour rendre un volume hétérogène avec le Path Tracer, activez les éléments suivants :
- Paramètres du projet
- Définissez le RHI par défaut sur DirectX 12.
- Activez Support Hardware Ray Tracing (Prendre en charge le ray tracing matériel).
- Activez Path Tracing
- Plug-ins
- [Facultatif] Niagara Fluids
Pour une liste complète des spécifications, voir Path Tracer.
Volumes hétérogènes avec Niagara Fluids
Le plug-in Niagara Fluids doit être activé pour utiliser cette fonctionnalité. Pour plus d'informations, voir Niagara Fluids.
Pour effectuer un rendu avec Niagara Fluids, procédez comme suit :
- Créez un nouveau Niagara Fluid dans le navigateur de contenu.
- Dans la fenêtre du sélecteur Niagara, sélectionnez Nouveau système à partir d’un modèle ou d’un exemple de comportement et cliquez sur Suivant.
- Choisissez l’un des exemples de la liste 3 D Gas dans la fenêtre.
- Double-cliquez sur la ressource Niagara Fluid pour ouvrir l'éditeur Niagara.
- Sélectionnez le nœud du système Niagara Fluid dans le graphique.
- Dans le panneau Détails, configurez les éléments suivants :
- Loop Behavior (Comportement de la boucle) sur Infinite (Infinie).
- La Loop Duration (durée de la boucle) doit être inférieure à 5 secondes.
- Compilez et enregistrez la ressource Niagara Fluid.
- Placez le fluide Niagara dans votre scène.
- Ouvrez la fenêtre de la console et saisissez
r.PathTracing.HeterogeneousVolumes 1pour activer la prise en charge du Path Tracer pour le rendu de volume hétérogène.
Volumes hétérogènes avec Sparse Volume Textures
Pour effectuer un rendu avec Sparse Volume Textures, procédez comme suit :
- Importez un fichier VDB et configurez un matériau Sparse Volume Textures pour l'afficher.
- Dans l'éditeur de niveau, utilisez le panneau Placer des acteurs pour ajouter un acteur de volume hétérogène à la scène.
- Assignez le matériau Sparse Volume Textures à son créneau de matériau.
- Ouvrez la fenêtre de la console et saisissez
r.PathTracing.HeterogeneousVolumes 1pour activer la prise en charge du Path Tracer pour le rendu de volume hétérogène.
Variables de console utiles
| Variable de console | Description | Valeur par défaut |
|---|---|---|
r.PathTracing.HeterogeneousVolumes |
Activer le Path Tracing de volumes hétérogènes. | 0 |
r.HeterogeneousVolumes.IndirectLighting |
Activer l'éclairage indirect pour les volumes hétérogènes. Cette option est désactivée par défaut. | 0 |
r.HeterogeneousVolumes.OrthoGrid |
Activer la grille de voxels de l'espace du monde. | 1 |
r.HeterogeneousVolumes.OrthoGrid.MaxBottomLevelMemoryInMegabytes |
Déterminer la limite de mémoire (en mégaoctets) de chaque grille de voxels de niveau inférieur utilisée pour la voxélisation (émission, extinction et albédo). La valeur cinématique par défaut recommandée est 512. | 128 |
r.HeterogeneousVolumes.OrthoGridShadingRate |
Déterminer le taux d'ombrage actif de la grille de voxels de l'espace du monde, où la valeur correspond approximativement à la largeur du pixel. Les taux d'ombrage inférieurs créent une tessellation de meilleure qualité, mais nécessitent plus de mémoire. La valeur cinématique par défaut recommandée est 1. | 4 |
r.HeterogeneousVolumes.FrustumGrid |
Activer la grille de voxels alignée sur le Frustum. | 1 |
r.HeterogeneousVolumes.FrustumGrid.MaxBottomLevelMemoryInMegabytes |
Déterminer la limite de mémoire (en mégaoctets) de chaque grille de voxels de niveau inférieur utilisée pour la voxélisation (émission, extinction et albédo). La valeur cinématique par défaut recommandée est 512. | 128 |
r.HeterogeneousVolumes.FrustumGrid.ShadingRate |
Déterminer le taux d'ombrage actif de la grille de voxels alignée sur le Frustum, où la valeur correspond approximativement à la largeur du pixel. Les taux d'ombrage inférieurs créent une tessellation de meilleure qualité, mais nécessitent plus de mémoire. La valeur cinématique par défaut recommandée est 1. | 4 |
r.HeterogeneousVolumes.FrustumGrid.DepthSliceCount |
Déterminer le nombre de tranches de profondeur de la grille de voxels alignée sur le Frustum lorsqu'elle est rendue avec un taux d'ombrage de 1. Le rendu avec un taux d'ombrage de 2 correspond à l'émission d'un nombre de tranches de profondeur de 256. La valeur cinématique par défaut recommandée est 512 ou 1024. | 512 |
r.HeterogeneousVolumes.Tessellation.FarPlaneAutoTransition |
Tronquer le plan lointain de la grille alignée sur le Frustum lorsque la taille de voxel de la grille de voxels alignée sur le Frustum correspond à la taille de voxel de la grille de voxels de l'espace du monde. | 1 |
| Variables d'évolutivité | ||
r.HeterogeneousVolumes.DownsampleFactor |
Cette option sous-échantillonne le hublot rendu. | 1.0 |
r.HeterogeneousVolumes.MaxStepCount |
Le nombre maximal d'étapes de ray-marching utilisé pour rendre des volumes hétérogènes. | 512 |
r.HeterogeneousVolumes.Shadows.Resolution |
Définir la résolution lors de la construction de la texture d'ombre volumétrique. | 512 |
Paramètres du projet concernant les volumes hétérogènes
Les acteurs de volume hétérogène ont les paramètres de projet suivants. Ceux-ci se trouvent dans la section Engine > Rendering (Moteur > Rendu) de la catégorie Heterogeneous Volumes (Volumes hétérogènes).
| Propriété | Description |
|---|---|
| Volumes hétérogènes | Activer le rendu avec un sous-système de volumes hétérogènes. |
| Projection d’ombres | Autoriser les volumes hétérogènes à projeter des ombres sur l'environnement. |
| Composition avec translucidité | Activer la composition avec des volumes hétérogènes lors du rendu de la translucidité. |
Remarques supplémentaires
Temps réel :
- Rendu en temps réel ou via Path Tracer
- Une prise en charge plus complète des volumes de rendu est désormais disponible dans le Path Tracer, ce qui permet de simuler avec précision l'illumination globale.
- Projeter des ombres sur l'environnement
- Cette fonctionnalité est expérimentale.
- Vous pouvez activer la projection d'ombres de volumes hétérogènes dans les paramètres du projet.
Path Tracer :
Cette fonctionnalité est au stade d'expérimentation.
- Volumes hétérogènes pixélisés ou flous
- Le taux d'ombrage par défaut pour le rendu de volume hétérogène est de 4, ce qui permet de prendre en charge le path tracing interactif. Réduire le taux d'ombrage à 1 supprime les artefacts perceptibles, mais nécessite une mémoire accrue pour un rendu correct. Le taux d'ombrage cinématique par défaut recommandé est de 1 et la limite de mémoire par défaut recommandée est de 512. Nous vous recommandons de les définir dans les paramètres de Movie Render Queue lors du rendu.
- Voxel manquant dans les rendus
- La diminution du taux d'ombrage de l'espace du monde et des grilles de voxels alignées sur le Frustum peut occasionner une allocation de plus de voxels de niveau inférieur que ce qui est autorisé par la limite de mémoire imposée. Dans ces cas, les voxels ne sont pas alloués et des parties du volume sont manquantes. À ce stade, il faut utiliser plus de mémoire de niveau inférieur ou augmenter le taux d'ombrage.
- Les volumes hétérogènes de chevauchement apparaissent pixélisés
- Les données de voxel de niveau inférieur dans la grille de voxels de l'espace du monde sont agrégées si la région est déterminée comme étant homogène. La détection homogène est réalisée dans les limites d'un seul volume et peut être agrégée de manière inappropriée en présence d'un volume de chevauchement dans la même région. Vous pouvez empêcher l'agrégation en définissant
r.HeterogeneousVolumes.tessellation.BottomLevelGrid.HomogeneousAggregationsur0pour le désactiver.
- Les données de voxel de niveau inférieur dans la grille de voxels de l'espace du monde sont agrégées si la région est déterminée comme étant homogène. La détection homogène est réalisée dans les limites d'un seul volume et peut être agrégée de manière inappropriée en présence d'un volume de chevauchement dans la même région. Vous pouvez empêcher l'agrégation en définissant
- Effet porte moustiquaire avec Niagara Fluid
- Les systèmes Niagara ne déclenchent un événement d'invalidation du path tracing que lorsque l'éditeur Niagara est ouvert. Lorsque l'éditeur ouvert, cela permet de visualiser correctement l'animation dans le Path Tracer. Lorsque l'éditeur est fermé, le Path Tracer continue d'accumuler des échantillons tout au long de l'animation.
- Effet de porte moustiquaire avec acteur de volume hétérogène
- L'acteur de volume hétérogène ne déclenche actuellement pas d'événement d'invalidation du path tracing. Décochez la propriété Animate (Animer) sur l'acteur pour suspendre l'animation.
Éclairage indirect avec des volumes hétérogènes
Vous pouvez activer la prise en charge de l'éclairage indirect avec des volumes hétérogènes avec la variable de console r.HeterogeneousVolumes.IndirectLighting 1. Cette fonctionnalité est plus adaptée aux PC haut de gamme et offre des performances optimales avec les paramètres d'évolutivité cinématiques.
![]() |
![]() |
| Sans éclairage indirect | Avec éclairage indirect |
Ressources supplémentaires
- Plug-in Niagara Fluids
- Le plug-in Niagara Fluids comprend des exemples qui peuvent être utilisés avec un rendu de volume hétérogène. Activez le plug-in dans votre projet et créez un nouveau système Niagara à partir des modèles proposés. Pour plus d'informations, voir Niagara Fluids
- Les fichiers VDB utilisés dans les exemples de cette page proviennent de l'ensemble de fichiers VDB gratuit de JangaFX créé avec EmberGen.
- Téléchargez leurs exemples gratuits ici.

