Fournir de vraies normales au 3DGS avec un maillage proxy
Vue d'ensemble
ProxyMesh est une fonctionnalité de l'édition Pro de LCC4Unreal. Elle fournit une profondeur et des normales réelles grâce à un maillage proxy placé dans la scène, et c'est le seul mode de normales offrant un ombrage conforme à la forme réelle. Elle s'applique à tous les formats de la pipeline LCC2 (.lcc2 / .sog / .spz / .ply). Pour les licences, voir Éditions et licences.
Note : ProxyMesh nécessite une licence valide. Sans licence, le mode revient automatiquement à Fixed.
Ce qu'est un maillage proxy
Les données 3DGS n'ont pas de normales de surface et n'écrivent rien dans le GBuffer, elles ne peuvent donc pas participer aux calculs d'éclairage classiques. Le rôle du maillage proxy est de fournir une géométrie dont la forme correspond au 3DGS. Le plugin y récupère la profondeur, les normales et les propriétés de matériau du GBuffer, puis les transmet à l'éclairage et au post-traitement du moteur ; le maillage lui-même n'apparaît jamais dans l'image finale.
3DGS data Proxy mesh
(color, opacity) (depth, normals, material properties)
│ │
│ ▼
│ Written into the GBuffer
│ │
│ ┌───────────────┴───────────────┐
│ ▼ ▼
│ Engine lighting Post-processing that
│ (directional, point, shadows) depends on the GBuffer
│ │ (reflection, refraction, etc.)
│ └───────────────┬───────────────┘
▼ ▼
Color source ──────────────▶ Composite final image
│
▼
The proxy mesh itself is invisible
Autrement dit : la couleur visible dans l'image vient du 3DGS, et la réponse à l'éclairage vient du maillage proxy.
L'origine du maillage n'est pas restreinte : le plugin ne lit que son résultat de rendu et ne se soucie pas de sa provenance. Les sources courantes :
| Source | Description |
|---|---|
| Maillage approximatif généré avec le 3DGS | Maillage produit par le flux d'acquisition ; la meilleure concordance de forme, et le premier choix |
| Maillage converti depuis le 3DGS | Maillage reconstruit à partir du 3DGS avec un outil tiers |
| Maillage modélisé à la main | Modélisé d'après la forme du 3DGS dans un logiciel DCC, adapté aux scènes nécessitant un contrôle précis |
| Assemblage de primitives de base | Volumes approximatifs construits à partir de Cube, Plane et autres maillages de base, adaptés aux formes régulières comme les bâtiments et le sol |
La seule exigence est que le maillage épouse la forme du 3DGS dans l'espace. Plus la concordance est fidèle, plus l'éclairage est réaliste ; en cas d'écart trop important, la direction de l'éclairage ne correspond plus à la forme visible dans l'image.
Le maillage n'a pas besoin d'être précis : une géométrie simplifiée à faible nombre de polygones suffit dès lors que les volumes et l'orientation sont corrects.
Le rôle du matériau
Les propriétés de matériau du maillage proxy sont lues avec le GBuffer : elles déterminent donc la façon dont la surface 3DGS répond à l'éclairage.
Pour un éclairage de base, un matériau whitebox suffit et aucune texture n'est nécessaire. Pour les effets qui dépendent des propriétés de matériau, utilisez le matériau PBR correspondant à l'endroit voulu sur le maillage, par exemple :
- Réflexion et réfraction de l'eau : utilisez un matériau d'eau avec des valeurs de métallicité et de rugosité adaptées sur la zone aquatique
- Reflets métalliques : donnez les valeurs Metallic et Roughness correspondantes sur les structures métalliques
- Surfaces rugueuses : utilisez une Roughness élevée pour supprimer les reflets qui ne devraient pas apparaître
Quand les propriétés de matériau ne correspondent pas à la forme réelle, le résultat de l'éclairage ne correspond pas à l'aspect du 3DGS visible dans l'image, par exemple un reflet spéculaire sur un mur qui devrait être rugueux.
Configuration rapide
Étape 1 : placer l'Actor ProxyMesh
- Ajoutez un Actor
ALCC2ProxyMeshdepuis le panneau du plugin LCC4Unreal dans l'éditeur - Assignez un StaticMesh à son
StaticMeshComponent(source libre, voir la section précédente) - Ajustez la position du ProxyMesh pour qu'il recouvre spatialement le contenu 3DGS

Placement d'un Actor ALCC2ProxyMesh dans la scène
Étape 2 : activer le mode ProxyMesh
- Sélectionnez l'Actor de la pipeline LCC2 (
ALCC2Actor/ASogActor/ASpzActor/APlyActor) - Repérez LightMode dans le panneau Details et passez-le en mode Lit
- Repérez la catégorie Lighting du LCC2Component dans le panneau Details
- Réglez
NormalModesurProxyMesh

Activation de Lit et réglage de NormalMode sur ProxyMesh
Étape 3 : vérifier
- Changez la direction de l'éclairage de la scène et observez si le 3DGS produit un auto-ombrage
- Confirmez que le maillage proxy est masqué dans l'image finale

Résultat d'éclairage après que ProxyMesh a fourni de vraies normales
Exemple d'utilisation de ProxyMesh

Processus de configuration de ProxyMesh et résultat d'éclairage
ALCC2ProxyMesh
L'Actor proxy, associé aux Actors de la pipeline LCC2 lorsque NormalMode = ProxyMesh.
Propriétés
| Propriété | Description |
|---|---|
| StaticMeshComponent | Le maillage statique qui fournit la profondeur et les normales de la scène |
Transformation par défaut
- Échelle (100, 100, 100) : l'unité du maillage est le mètre par défaut, alors qu'UE utilise le centimètre
- Rotation (0, 180, 0) : compense l'axe avant du pipeline de génération du maillage, opposé à celui d'UE
Comportement
- Active automatiquement le rendu CustomDepth quand le StaticMesh est valide
- Enregistre un avertissement et désactive CustomDepth quand le StaticMesh est vide
Vérification de la licence
Le mode ProxyMesh nécessite une licence de l'édition Pro, voir Éditions et licences. Sans licence, le mode revient automatiquement à Fixed et la valeur de propriété enregistrée n'est pas modifiée.
Changement à l'exécution
NormalMode peut être modifié à l'exécution depuis un Blueprint ou en C++, avec prise d'effet à l'image suivante.
Utilisation en Blueprint
Générer un ProxyMesh
SpawnActor->Class: ALCC2ProxyMesh
→ Set the StaticMesh of StaticMeshComponent
→ Adjust the position to align with the 3DGS content
Changer de mode
LCC2Component->NormalMode = ProxyMesh
Bonnes pratiques
- Couverture du maillage : assurez-vous que le maillage proxy couvre la même zone spatiale que le contenu 3DGS.
- Précision du maillage : une approximation simplifiée de la géométrie de la scène suffit, un nombre élevé de polygones n'est pas nécessaire.
- Plusieurs Actors : plusieurs Actors
ALCC2ProxyMeshpeuvent être placés pour couvrir différentes zones. - Aucune liaison explicite : il n'est pas nécessaire de relier le ProxyMesh à un Actor particulier, l'appariement est automatique.
- Compatibilité descendante : les projets qui n'utilisent pas ProxyMesh se comportent exactement comme avant la mise à jour, sans coût supplémentaire.
Dépannage
ProxyMesh n'a aucun effet
- Confirmez que
NormalModeest bien réglé surProxyMesh - Confirmez que la licence est valide
- Assurez-vous que l'Actor ProxyMesh a un StaticMesh valide assigné
- Confirmez que le ProxyMesh recouvre spatialement le contenu 3DGS
Avertissement : « has a null StaticMesh »
Assignez un StaticMesh à l'Actor ALCC2ProxyMesh. L'avertissement est limité et n'est émis qu'une seule fois par instance.
Couleur whitebox visible dans l'image finale
- Assurez-vous qu'au moins un LCC2Component est en mode ProxyMesh
- Ajustez
LCC2.ProxyMeshDepthEpsilonsi la correspondance de profondeur est trop strictement appliquée
Le résultat d'éclairage est incorrect
- Vérifiez que les normales du maillage proxy sont une approximation raisonnable de la géométrie réelle de la scène
Les ombres n'apparaissent que de près et sont coupées au loin
Un problème du moteur lui-même. Sélectionnez l'Actor ProxyMesh, désactivez puis réactivez Far Shadow sur le StaticMeshComponent pour rétablir des ombres complètes.