XGRIDSDocumentation
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Lixel CyberColor

    • LCC Studio

      • Prise en main
      • Version et mises à jour
      • Téléchargement et installation
      • Aperçu de l’interface et navigation
      • Avant la reconstruction
      • Reconstruction du modèle
      • Reconstruction d’un modèle unique
      • Fusion cartographique
      • Fusion aérienne-terrestre
      • Reconstruction aérienne
      • Mes modèles
      • Autres fonctionnalités
      • Paramètres et compte
      • Convertisseur
      • Reconstruction vidéo
      • Questions fréquentes
    • LCC Scene Editor

      • Version et mises à jour
      • Compte et connexion
      • Présentation du produit et accueil
      • Interface de l’éditeur
      • Modes de navigation de scène
      • Fichier
      • Paramètres
      • Opérations d’édition
      • Fenêtre
      • Barre d’outils globale
      • Ressources et propriétés
      • Barre d’outils gauche
      • Points de vue
      • Portail
      • Skybox
      • Annotations
      • Mesure
      • Parcours
      • Rapport de scène
      • 3D Layout
      • Mini-carte
      • Mode Prévisualisation, Viewer
      • Aide
      • FAQ
      • Point d’apparition
    • LCC Model Editor

      • Version et mises à jour
      • Guide de l’utilisateur
      • Aperçu et interface
      • Opérations sur les fichiers
      • Sélecteurs
      • Modification des modèles
      • Mesure
      • Réglage des couleurs
      • Gestion des ressources
      • Paramètres et aide
      • Questions fréquentes
  • Plugin & SDK

    • Unreal

      • Introduction
      • Démarrage rapide - Windows
      • Démarrage rapide - Linux
      • Démarrage rapide - Quest3
      • Éditions et licences
      • Rendu
      • Rastérisation Tiled (expérimental)
      • Réglages visuels
      • Normales et éclairage
      • Édition de scène
      • Paramètres de performance
      • Guide d'optimisation des performances
      • Intégration avec les plugins tiers et moteur
      • Maillage proxy
      • Animation de chargement
      • Collision
      • Prise en charge du système de navigation
      • Prise en charge de l'eau à couche unique
      • Localisation
      • Questions fréquentes
      • Dépannage
      • Journaux et diagnostics
      • Nous contacter
      • Bonnes pratiques

        • Rééclairer un 3DGS avec un maillage LixelStudio
      • Référence API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Journal des modifications

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1

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 :

SourceDescription
Maillage approximatif généré avec le 3DGSMaillage produit par le flux d'acquisition ; la meilleure concordance de forme, et le premier choix
Maillage converti depuis le 3DGSMaillage reconstruit à partir du 3DGS avec un outil tiers
Maillage modélisé à la mainModé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 baseVolumes 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

  1. Ajoutez un Actor ALCC2ProxyMesh depuis le panneau du plugin LCC4Unreal dans l'éditeur
  2. Assignez un StaticMesh à son StaticMeshComponent (source libre, voir la section précédente)
  3. Ajustez la position du ProxyMesh pour qu'il recouvre spatialement le contenu 3DGS
Placement d'un Actor ALCC2ProxyMesh

Placement d'un Actor ALCC2ProxyMesh dans la scène

Étape 2 : activer le mode ProxyMesh

  1. Sélectionnez l'Actor de la pipeline LCC2 (ALCC2Actor / ASogActor / ASpzActor / APlyActor)
  2. Repérez LightMode dans le panneau Details et passez-le en mode Lit
  3. Repérez la catégorie Lighting du LCC2Component dans le panneau Details
  4. Réglez NormalMode sur ProxyMesh
Activation de Lit et sélection du mode de normales ProxyMesh

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 avec de vraies normales fournies par ProxyMesh

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

Exemple d'utilisation de ProxyMesh

Démonstration de la configuration de ProxyMesh et du résultat d'éclairage

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
StaticMeshComponentLe 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

  1. Couverture du maillage : assurez-vous que le maillage proxy couvre la même zone spatiale que le contenu 3DGS.
  2. 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.
  3. Plusieurs Actors : plusieurs Actors ALCC2ProxyMesh peuvent être placés pour couvrir différentes zones.
  4. Aucune liaison explicite : il n'est pas nécessaire de relier le ProxyMesh à un Actor particulier, l'appariement est automatique.
  5. 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 NormalMode est bien réglé sur ProxyMesh
  • 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.ProxyMeshDepthEpsilon si 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.

Précédent
Intégration avec les plugins tiers et moteur
Suivant
Animation de chargement