Réglage des paramètres d'image 3DGS
Ce document comporte trois parties : les paramètres communs agissent sur les deux pipelines, puis viennent les paramètres propres à chaque pipeline. Les paramètres spécifiques à une pipeline n'apparaissent pas dans le panneau Details de l'autre.
Paramètres communs
Render Mode
3D Gaussian Splatting (par défaut)
Rend les données sous forme d'ellipses gaussiennes 2D avec couleur et transparence complètes.
LCCComponent->SetRenderMode(ERenderMode::Splatting);
Nuage de points
Rend chaque splat comme un point coloré unique, adapté aux vues d'ensemble ou aux scènes contraintes en performances.
LCCComponent->SetRenderMode(ERenderMode::PointCloud);

Basculement entre les modes de rendu 3DGS et nuage de points
Le mode nuage de points prend en charge deux méthodes de colorisation, changées avec ColorationMode :
| Mode | Libellé du panneau | Description |
|---|---|---|
Data | Data | Colorise les points avec le RGB stocké dans les données |
Elevation | Evelation | Attribue la couleur selon l'altitude, en remplaçant les couleurs d'origine |
Avec Elevation, ces deux propriétés définissent les extrémités du dégradé :
ElevationColorBottom— couleur à l'altitude la plus basseElevationColorTop— couleur à l'altitude la plus haute

Colorisation par altitude en mode nuage de points
Utilisez Data pour voir les couleurs réelles de la scène capturée, et Elevation pour lire le relief du terrain et les différences de hauteur.

Colorisation Data en mode nuage de points, affichant les couleurs réelles stockées dans les données
Load Mode
Les données sont séparées en une partie principale et une partie environnement, et LoadMode contrôle la partie rendue :
| Mode | Description |
|---|---|
| Both | Rend la partie principale et l'environnement (par défaut) |
| OnlyMain | Rend uniquement la partie principale |
| OnlyEnvironment | Rend uniquement l'environnement |
| None | Ne rend rien, les données restent chargées |

Changement du périmètre de rendu principal et environnement avec LoadMode
Note :
Nonearrête seulement le rendu, et les données occupent toujours la mémoire vidéo. AppelezUnLoad()pour libérer les ressources.
Light Mode
Unlit (par défaut)
Utilise uniquement la couleur des gaussiennes elles-mêmes, sans interaction avec les lumières de la scène.
Lit
Active l'éclairage différé pour que la scène 3DGS puisse être affectée par les lumières directionnelles, les lumières ponctuelles et d'autres. Nécessite des informations de profondeur et de normales.
LCCComponent->SetLightMode(ELightMode::Lit);

Basculement entre les modes d'éclairage Unlit et Lit
Mip Filter
Quand il est activé, applique un filtre passe-bas 2D avec une compensation d'opacité pour réduire le scintillement aux différentes échelles.
La valeur par défaut dépend du format de données :
| Format | Valeur par défaut |
|---|---|
.lcc2 / .lcc | Activé |
.ply / .spz / .sog | Désactivé |
Les formats à fichier unique le désactivent par défaut afin de préserver l'aspect net d'origine des données. Activez-le manuellement quand du scintillement apparaît :
LCCComponent->SetUseMipFilter(true);
Harmoniques sphériques (SH)
Apportent une variation de couleur dépendante du point de vue et améliorent la fidélité de l'éclairage.
LCCComponent->SetUseShcoef(true);
Prérequis :
- Le mode de rendu est 3DGS
- Les données contiennent elles-mêmes des coefficients SH
La présence de coefficients SH dans les données dépend du format :
| Format | Comment cela est déterminé |
|---|---|
.lcc2 / .lcc | Déterminé par le type de fichier des données : le type Quality contient des SH, le type Portable non |
.ply / .spz / .sog | Pas de marqueur de type de fichier, cela dépend donc de l'écriture effective des coefficients SH dans le fichier |
Quand les données ne contiennent aucun coefficient SH, cette option est désactivée dans le panneau Details.
Bandes SH
Une fois les SH activées, SHBands règle le nombre d'ordres qui participent au calcul, de 1 à 3. La propriété n'est disponible que sur la pipeline LCC2, et s'applique indifféremment à .lcc2, .sog, .spz et .ply.
LCC2Component->SetSHBands(2);
| Réglage | Effet |
|---|---|
bUseShcoef désactivé | Aucune SH ; la couleur ne change pas avec le point de vue, coût minimal |
SHBands = 1 | Conserve la variation la plus basique liée au point de vue ; l'occupation mémoire GPU représente un quart de celle du 3e ordre |
SHBands = 2 | Intermédiaire entre les deux |
SHBands = 3 (par défaut) | Effet complet lié au point de vue, coût maximal |
La valeur par défaut vient de l'ordre stocké dans les données, qui est aussi la limite supérieure. Régler 3 sur des données qui ne stockent que 2 ordres n'apporte rien de plus. Comparé à la désactivation complète des SH, baisser l'ordre est un compromis plus fin : cela conserve une partie de la variation liée au point de vue tout en réduisant le coût d'ombrage et l'occupation mémoire GPU. Pour les chiffres de mémoire, voir Rendu - Structure des Buffers.
SplatScale
Contrôle la taille de chaque quad de splat, de 0.001 à 1.0.
Le baisser réduit la surface écran couverte par un splat, ce qui réduit le recouvrement semi-transparent et abaisse le coût de remplissage de pixels. Le baisser trop fait apparaître des trous sur les surfaces ou leur donne un aspect nettement trop fin. C'est aussi l'une des options de réglage des performances ; voir Guide de performance.
LCCComponent->SetSplatScale(1.0f);

Réglage de l'échelle des splats et de l'alpha global 3DGS
Alpha global
Chaque mode de rendu possède sa propre propriété d'alpha global, toutes deux de 0.0 à 1.0 :
| Propriété | S'applique à |
|---|---|
| GlobalAlpha | 3DGS |
| GlobalAlpha_PointCloud | Nuage de points |
LCCComponent->SetGlobalAlpha(1.0f);
LCCComponent->SetGlobalAlpha_PointCloud(1.0f);

Réglage de l'alpha global du mode nuage de points
Réglage des couleurs

Configuration des paramètres LCC de saturation, de contraste et de teinte
Les modifications à l'exécution sont prises en charge :
| Propriété | Plage | Description |
|---|---|---|
| Saturation | 0.0~2.0 | Saturation par canal |
| Contrast | 0.0~2.0 | Contraste par canal |
| Gamma | 0.0~2.0 | Correction gamma par canal |
| Offset | -1.0~1.0 | Décalage de couleur additif |
| ColorTint | LinearColor | Teinte multiplicative |
LCCComponent->SetSaturation(FVector4(1.2, 1.2, 1.2, 1.0));
LCCComponent->SetColorTint(FLinearColor::White);

L'image après réglage dynamique des paramètres de couleur
Anticrénelage
Avec bAffectAntiAliasingMethod activé, le plugin gère automatiquement la méthode d'anticrénelage :
| Configuration | Méthode par défaut |
|---|---|
| LCC1 Splat | FXAA |
| LCC2 Splat | TSR |
| LCC1 Point Cloud | MSAA |
| LCC2 Point Cloud | TSR |
Les valeurs par défaut sont modifiables dans ProjectSettings > Plugins > LCC4Unreal.
Note : la méthode d'anticrénelage est un réglage global au niveau de la vue. Quand des Actors de la pipeline LCC et de la pipeline LCC2 coexistent dans la même scène, chacun définit la méthode d'anticrénelage selon sa propre configuration ; celle qui prend effet dépend donc de l'ordre d'exécution et le résultat est indéterminé. Dans ce type de scène, configurez manuellement la même méthode d'anticrénelage pour les deux pipelines.

Configuration de la méthode d'anticrénelage par défaut de chaque pipeline LCC
Post-traitement

Configuration des options de post-traitement et de tone mapping de LCC4Unreal
| Réglage | Valeur par défaut | Description |
|---|---|---|
| Enable Post Process | Activé | Les pixels LCC participent ou non à la pipeline de post-traitement du moteur |
| Apply Tonemap Inverse | Désactivé | Applique FilmToneMapInverse lors de la conversion d'espace colorimétrique afin de restituer l'aspect d'origine des données après le tone mapping du moteur |
Ce sont des réglages globaux situés sous ProjectSettings > Plugins > LCC4Unreal > Rendering et ils s'appliquent aux deux pipelines. Tous les composants LCC d'une scène partagent le même mode, qui ne peut pas être défini par Actor.
Résultat de la désactivation d'Enable Post Process
Les deux états sont traités différemment :
| État | Traitement | Résultat |
|---|---|---|
| Activé | Applique InverseACES aux pixels LCC pour qu'ils entrent dans la pipeline de post-traitement du moteur | Le 3DGS reçoit le tone mapping, le Bloom, l'exposition, l'étalonnage et les autres post-traitements en même temps que les objets classiques de la scène |
| Désactivé | Enregistre un instantané avant le tone mapping et le recompose dans l'image par alpha une fois le tone mapping terminé | Le 3DGS conserve ses couleurs d'origine et n'est affecté ni par le tone mapping ni par aucune étape de post-traitement suivante |
Le désactiver convient aux cas qui exigent une reproduction stricte des couleurs d'origine des données, comme la vérification de couleurs ou la comparaison à une image de référence. En contrepartie, le 3DGS et les objets classiques de la scène ne se ressemblent plus, et les effets de post-traitement globaux comme le Bloom et l'exposition ne s'appliquent pas à la partie 3DGS.
Note : désactiver Enable Post Process nécessite la sortie du canal alpha dans le moteur, sinon le résultat de composition est incorrect. Activez Alpha Output dans ProjectSettings > Engine > Rendering (dans UE 5.4 et versions antérieures, cela correspond à « Enable alpha channel support in post processing », à régler sur Linear color space only puis à redémarrer l'éditeur). Le plugin affiche un avertissement quand il détecte que cette option est désactivée.
Rôle d'Apply Tonemap Inverse
Les couleurs des données 3DGS sont des couleurs finalisées qui ont déjà subi un tone mapping lors de la capture. Faire repasser ces couleurs par le tone mapping du moteur les compresse une seconde fois, ce qui se traduit généralement par un contraste plus faible et des hautes lumières grisâtres.
Avec cette option activée, le plugin applique FilmToneMapInverse aux couleurs LCC lors de l'étape de conversion d'espace colorimétrique afin d'annuler le tone mapping du moteur qui suit, si bien que l'image finale restitue l'aspect d'origine des données.
| État | Cas d'usage |
|---|---|
| Désactivé (par défaut) | Le 3DGS et les objets classiques de la scène partagent le même tone mapping pour un rendu global cohérent |
| Activé | Le 3DGS doit afficher les couleurs et le contraste d'origine des données |
Cette option s'applique aux deux pipelines et n'a de sens que si Enable Post Process est activé : dès qu'il est désactivé, le 3DGS ne participe plus au tone mapping, il n'y a donc rien à annuler.
Paramètres propres à la pipeline LCC2
Seuil de profondeur
AlphaThreshold décide quelle couche de profondeur le 3DGS écrit dans le depth buffer. Le 3DGS est composé de nombreuses couches de splats semi-transparents, et le plugin accumule l'opacité du plus proche au plus lointain. Quand la valeur accumulée atteint ce seuil, la profondeur courante est enregistrée comme profondeur représentative de ce pixel.
| Élément | Valeur |
|---|---|
| Plage | 0.01 ~ 0.99 |
| Valeur par défaut | 0.5 |
Le baisser rapproche la profondeur de la caméra, l'augmenter l'en éloigne. Cette profondeur participe à l'éclairage, aux tests d'occlusion et aux post-traitements dépendants de la profondeur ; la réponse des surfaces en mode Lit et l'occlusion mutuelle avec les meshes classiques évoluent donc avec elle.
LCC2Component->AlphaThreshold = 0.5f;
Cas typique justifiant de le baisser : les données contiennent des structures fines à très faible opacité, comme des ailes d'insectes ou d'oiseaux, un grillage ou des bords de feuilles. Les splats de ces zones n'atteignent jamais l'opacité accumulée par défaut de 0.5, aucune profondeur n'est donc écrite. Si la scène comporte en plus une skybox, du brouillard ou un autre arrière-plan non noir, ces zones se mélangent à la couleur d'arrière-plan faute de profondeur, ce qui se traduit par des structures délavées et une perte de détail. Baisser le seuil permet à ces zones d'écrire la profondeur plus tôt et restitue le détail.
Baissez-le progressivement et observez. Une valeur trop basse tire toute la profondeur vers la caméra et affecte les relations d'occlusion et les post-traitements dépendants de la profondeur.
Note : cette propriété se trouve dans la zone repliée Advanced du panneau Details, et la valeur par défaut convient à la plupart des scènes.
Paramètres propres à la pipeline LCC
Réception des ombres
LCCComponent->bReceiveShadows = true;
Note : nécessite le mode de rendu 3DGS. L'activer a un impact important sur les performances.

Rendu 3DGS avec la réception des ombres activée
Découpe des jointures
bEnableSeamCutting supprime les jointures que le rendu par blocs produit aux frontières de nœuds. Les données LCC en version 5.0 et supérieure l'activent automatiquement ; activez-le manuellement si des jointures visibles apparaissent dans des données de versions inférieures.
LCCComponent->bEnableSeamCutting = true;
Note : cette propriété se trouve dans la zone repliée Advanced du panneau Details.
Tri de la translucidité entre plusieurs Actors
La pipeline LCC ne produit pas de profondeur, donc plusieurs LCC Actors ne peuvent pas obtenir une occlusion mutuelle correcte par le test de profondeur et ne peuvent que l'approcher par l'ordre de dessin des éléments translucides. bEnableMultipleLCCActorAutoSort (activé par défaut) règle automatiquement TranslucentSortPriority selon la distance de chaque Actor à la caméra, si bien que les Actors les plus proches sont dessinés en dernier, ce qui donne un résultat de recouvrement acceptable dans la plupart des cas.
Ce tri fonctionne à la granularité de l'Actor : chaque Actor y participe dans son ensemble et n'est pas subdivisé jusqu'aux splats. Cela entraîne des limites inhérentes :
- Quand les boîtes englobantes de deux LCC Actors se croisent ou s'interpénètrent dans l'espace, aucun ordre global unique ne peut exprimer la bonne relation avant/arrière, et l'occlusion dans la zone de croisement est erronée
- Quand un seul Actor couvre en interne une grande plage de profondeur, le tri par distance au centre de l'Actor peut ne pas correspondre à la relation avant/arrière réelle
Passez à la pipeline LCC2 quand plusieurs jeux de données 3DGS doivent s'occulter correctement. Désactivez cette option quand l'ordre de recouvrement doit être défini manuellement, et réglez TranslucentSortPriority sur chaque Actor à la place.
La pipeline LCC2 ne propose pas cette propriété : ses données sont fusionnées dans un seul Buffer, triées globalement par splat, et produisent une profondeur qui participe aux tests d'occlusion ; aucune intervention n'est donc nécessaire.