En bref
- Le Runtime Virtual Texturing (RVT) génère les données de texture sur le GPU à l’exécution et met en cache les données d’ombrage des grandes surfaces.
- La configuration de base comprend un asset RVT, un RVT Volume dans la scène, des matériaux compatibles et l’affectation des composants.
- La documentation cite les composants Landscape, Landscape Splines, Static Mesh et Instanced Static Mesh parmi les candidats appropriés pour le RVT.
- Le type de matériau basé sur YCoCg peut réduire certains artefacts dans les dégradés de couleur, mais entraîne 25 % de mémoire supplémentaire et un coût d’échantillonnage additionnel.
Le Runtime Virtual Texturing (RVT), présenté dans la documentation officielle d’Unreal Engine, génère les données de texture sur le GPU au besoin et met en cache les informations d’ombrage des grandes surfaces. Dans les projets de visualisation architecturale, cette méthode peut notamment être envisagée pour les surfaces Landscape, les matériaux intégrés au terrain et les splines. Les étapes ci-dessous s’appuient sur la documentation de configuration du RVT publiée par Epic. Celle-ci ne cible pas une version précise d’Unreal Engine pour la configuration générale ; toutefois, sa note de compatibilité indique que l’ancien type de matériau « Base Color, Normal » était disponible dans UE 4.23 et qu’il était automatiquement converti en un autre type dans UE 4.24.
Dans quelles scènes le RVT est-il pertinent ?
Le RVT peut être utilisé pour appliquer des matériaux complexes, superposés ou procéduraux sur de grandes surfaces. La documentation officielle cite notamment l’ombrage de Landscape, les Landscape Splines, les matériaux de type decal sur des meshes et le mélange entre le terrain et les objets. Comme le système peut stocker les données d’ombrage sur de vastes zones, il peut contribuer au flux de travail dans les scènes extérieures, pour le terrain et les surfaces similaires.
Il ne faut pas confondre le RVT avec le Streaming Virtual Texturing (SVT). Les deux méthodes concernent les grandes résolutions de texture et le chargement des données en mémoire à la demande. Toutefois, tandis que les texels du RVT sont générés par le GPU pendant l’exécution, les données du SVT sont préparées sur disque puis chargées. Epic présente le SVT comme une solution adaptée aux données dont la génération prend du temps, comme les lightmaps et les grandes textures détaillées préparées par les artistes.
Configuration du RVT : cinq étapes essentielles
Créez un asset RVT. Dans le Content Browser, cliquez sur Add New ou ouvrez le menu contextuel avec le bouton droit ; dans la catégorie Materials & Textures, choisissez Runtime Virtual Texture. Cet asset établit le lien avec les volumes de la scène et les matériaux qui écrivent des données dans le RVT ou en lisent. Ouvrez l’asset pour configurer sa taille, celle des tiles et le type de Material Attributes à prendre en charge.
Ajoutez un Runtime Virtual Texture Volume à la scène. Le volume place dans la scène l’asset RVT que vous avez créé. La documentation indique qu’on peut l’ajouter depuis le panneau Modes ou le faire glisser dans la scène depuis le panneau Place Actors. Le volume doit englober l’acteur dont les données seront écrites dans le RVT ; il s’agit généralement d’un Landscape ou d’une surface similaire à un terrain.
Ajustez le volume aux limites de la source. Une fois le RVT Volume sélectionné, choisissez l’acteur concerné dans le champ Source Actor, sous Transform from Bounds dans le panneau Details. Le bouton Set Bounds permet ensuite d’ajuster la position, l’échelle et la rotation du volume en fonction de l’acteur. Si d’autres composants écrivent également dans le RVT, vérifiez une nouvelle fois qu’ils sont couverts par le volume.
Préparez le matériau pour l’écriture et l’échantillonnage. L’expression Runtime Virtual Texture Output du matériau sert à écrire des données dans le RVT, tandis que l’expression Runtime Virtual Texture Sample permet de lire les données de l’asset assigné. Les matériaux des composants qui écrivent dans le RVT doivent utiliser le champ de matériau Virtual Texture ou inclure les RVT Material Expressions appropriées. Pour remplacer l’asset dans une instance de matériau distincte, vous pouvez utiliser Runtime Virtual Texture Sample Parameter ; le type de matériau de l’asset choisi doit correspondre à celui du nœud de paramètre.
Vérifiez les affectations des composants. Ajoutez l’asset RVT concerné au tableau Render to Virtual Textures dans le panneau Details du composant. Les composants qui écrivent dans le RVT ou l’échantillonnent doivent se trouver dans les limites du volume. Il faut également que l’asset RVT soit affecté à un volume dans la scène et que le matériau soit correctement préparé ; si l’une de ces conditions manque, le flux de données attendu peut ne pas fonctionner.
Types de matériaux et options de lightmap
Le Material Type sélectionné dans l’asset RVT détermine le type de données stockées. Les options ci-dessous figurent dans la documentation ; elles ne constituent pas des réglages recommandés pour tous les projets, mais correspondent à différents besoins en matière de données.
| Réglage | Type de matériau | Données stockées / remarque |
|---|---|---|
| Material Type | Base Color | Stocke uniquement la couleur de base ; le format compressé est BC1. |
| Material Type | Base Color, Normal, Roughness, Specular | Stocke les données de couleur de base, de normale, de rugosité et de spéculaire ; la compression utilise deux textures BC3. |
| Material Type | YCoCg Base Color, Normal, Specular | Encode la couleur de base au format YCoCg ; inclut également les données de normale, de rugosité et de spéculaire. |
| Material Type | World Height | Stocke une valeur de hauteur normalisée en fonction des coordonnées Z minimale et maximale du RVT Volume. |
| Material Type | Mask4 | Stocke un masque à quatre canaux, chaque canal ayant une valeur comprise entre 0 et 1. |
L’encodage YCoCg peut aider à réduire des problèmes comme les décalages de couleur et le banding visibles dans les dégradés de la couleur de base. En contrepartie, il utilise 25 % de mémoire supplémentaire et entraîne un coût de performance additionnel lors de l’échantillonnage et du décodage des données de texture virtuelle, selon la documentation. Lors du choix du type, tenez donc compte à la fois de la qualité visuelle et de l’impact sur la mémoire et les performances.
La prise en charge des lightmaps en texture virtuelle peut être activée depuis le réglage Enable virtual texture lightmaps, dans Project Settings › Engine › Rendering. Epic indique que cette fonctionnalité peut contribuer aux performances de streaming et à la qualité des lightmap bakes. r.IncludeNonVirtualTexturedLightmaps contrôle la génération et l’enregistrement des lightmaps non virtuelles. r.VT.EnableLossyCompressLightmaps active la compression avec perte des lightmaps ; la documentation précise que cette option réduit la qualité des textures de lightmap.
Flux de travail en visualisation architecturale et erreurs fréquentes
Le RVT peut être envisagé dans les scènes architecturales qui comprennent de vastes surfaces paysagères, des matériaux Landscape et des composants statiques devant s’intégrer au terrain. Outre Landscape et Landscape Splines, les composants Static Mesh et Instanced Static Mesh sont présentés comme des candidats appropriés. En revanche, les meshes squelettiques et animés ne sont pas de bons candidats. Comme le contenu du RVT n’est pas entièrement mis à jour à chaque image, les objets qui y écrivent sont généralement censés être Static.
Voici les erreurs de configuration les plus fréquentes :
Le RVT Volume ne couvre pas les composants qui écrivent dans le RVT ou l’échantillonnent.
Attendre un résultat sans avoir préparé le matériau ou affecté le bon asset RVT au composant.
Utiliser des meshes mobiles et animés comme s’il s’agissait d’un cache d’ombrage régulièrement actualisé.
Choisir l’option YCoCg sans tenir compte du coût supplémentaire en mémoire et en échantillonnage.
Négliger l’effet de la compression avec perte des lightmaps sur la qualité.
Dans le matériau de la scène, Virtual Texture Feature Switch permet de configurer une solution de remplacement pour les plateformes qui ne prennent pas en charge les textures virtuelles. En pratique, vérifiez séparément l’asset RVT, les limites du volume, les nœuds du matériau et les affectations des composants. Comparez ensuite le rendu visuel et les performances dans votre propre scène. Comme la documentation ne précise ni configuration matérielle requise ni valeur de réglage universelle, il est important de valider vos choix en fonction des conditions propres au projet.
Sources
2 sourcesLes textes sources ne sont pas republiés ; les courtes citations sont signalées, le reste est notre propre résumé et commentaire.
Pour les studios de visualisation architecturale en Turquie, le RVT est une méthode qui mérite d’être testée dans les scènes comprenant de vastes espaces paysagers et des géométries statiques intégrées au terrain. Le résultat dépend de la configuration correcte et conjointe de l’asset, du volume, du matériau et des affectations des composants. Il est donc utile de commencer par un test sur une portion représentative de la scène afin de repérer les éventuels problèmes avant de déployer le système dans l’ensemble du projet.
Les sources ne précisent pas de modèle de carte graphique ni de besoin en mémoire particulier. Les studios doivent mesurer les performances et la qualité dans leurs propres scènes, en tenant compte notamment du coût supplémentaire en mémoire et en échantillonnage du YCoCg. La pertinence des objets mobiles et l’effet de la compression des lightmaps sur la qualité doivent également figurer sur la liste de vérifications avant livraison.
Questions fréquentes
À quoi sert le Runtime Virtual Texturing dans Unreal Engine ?
Le RVT génère les données de texture sur le GPU à l’exécution et met en cache les données d’ombrage sur de grandes surfaces. Il peut être utilisé pour l’ombrage de Landscape, les splines et le mélange entre le terrain et les objets.
Comment configurer un RVT Volume ?
Ajoutez un Runtime Virtual Texture Volume à la scène. Dans la section Transform from Bounds du panneau Details, sélectionnez un Source Actor, puis utilisez le bouton Set Bounds pour ajuster le volume à l’acteur.
Quels objets ne conviennent pas au RVT ?
La documentation ne considère pas les meshes squelettiques et animés comme de bons candidats. Comme le contenu du RVT n’est pas entièrement mis à jour à chaque image, les objets qui écrivent dans le RVT sont généralement censés être Static.



