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

Rééclairer un 3DGS avec un maillage LixelStudio

Le plugin prend en charge le rééclairage hybride : combinez le 3DGS avec un maillage à la même échelle pour que le 3DGS obtienne une réponse à l'éclairage proche de celle d'un maillage, tout en produisant son propre auto-ombrage.

Le résultat dépend de la précision géométrique du maillage placé sous le 3DGS. Mieux le maillage et le 3DGS concordent, plus la réponse à l'éclairage et les ombres sont réalistes.

Pour le principe et les paramètres, voir Maillage proxy ; pour le choix du mode de normales, voir Normales et éclairage.

Quel maillage choisir

LCC Studio et LixelStudio génèrent tous deux des maillages, mais pour des usages différents.

Maillage LCC StudioMaillage LixelStudio
Précision de surfacePlus grossièrePlus proche de la forme réelle
Taille de fichierPetiteGrande
Adapté àDétection de collisionRééclairage

Pour la collision, le maillage LCC Studio suffit, voir Collision. Pour le rééclairage, prenez le maillage LixelStudio.

Maillage LCC Studio :

Maillage LCC Studio, vue d'ensemble
Maillage LCC Studio, vue rapprochée

Maillage LixelStudio :

Maillage LixelStudio, vue d'ensemble
Maillage LixelStudio, vue rapprochée

Étape 1 : rassembler les modèles en tuiles dans un seul dossier

LixelStudio exporte les maillages en tuiles. Sur une grande scène, cela donne de nombreux dossiers, chacun contenant un fichier .obj et ses textures. Avant l'import dans Unreal Engine, il faut les fusionner en un seul maillage, sinon vous obtenez une multitude de .obj indépendants.

Les étapes ci-dessous utilisent Blender, tout autre logiciel 3D fonctionne de la même façon. Blender se télécharge depuis le site officiel.

Blender n'accepte pas un lot de dossiers d'un seul coup : il faut d'abord remonter au même niveau les .obj dispersés dans les sous-dossiers. Faire glisser des dizaines de dossiers à la main est irréaliste, une seule commande PowerShell règle le problème.

Ouvrez le dossier racine qui contient tous les sous-dossiers, saisissez powershell dans la barre d'adresse et appuyez sur Enter. Le terminal s'ouvre dans le répertoire courant.

Saisie de powershell dans la barre d'adresse

Saisie de powershell dans la barre d'adresse de l'explorateur

Copiez et collez la commande suivante :

Get-ChildItem -Recurse -File | Move-Item -Destination .

Note : la commande remonte tous les fichiers des sous-dossiers dans le répertoire courant. Vérifiez avant l'exécution que vous êtes dans le bon dossier. Si le dossier A contient B et C, ouvrez PowerShell depuis la barre d'adresse de A ; après l'exécution, tous les fichiers de B et C se trouvent dans A.

Sous-dossiers avant l'exécution

Structure des dossiers avant l'exécution

Collage de la commande

Collage puis exécution de la commande

Après le collage, appuyez sur Enter. Cela prend quelques secondes. Une nouvelle invite indique que la commande est terminée.

Tout est maintenant remonté à plat. Ouvrez quelques sous-dossiers et vérifiez qu'ils sont vides.

Liste des fichiers après extraction

Tous les fichiers .obj et les textures sont désormais au même niveau

Étape 2 : fusionner en un seul fichier dans Blender

Appuyez sur Ctrl + A pour sélectionner tous les fichiers, puis faites-les glisser dans Blender.

Sélection de tous les fichiers

Sélection de tous les fichiers

Glissement dans Blender

Glissement dans Blender

Cliquez sur Import Wavefront OBJ pour importer. Pour garantir la bonne orientation, réglez Up Axis sur Z et Forward Axis sur X.

Réglage de l'orientation à l'import

Up Axis réglé sur Z et Forward Axis sur X

Toutes les tuiles sont maintenant importées.

Tuiles importées

Toutes les tuiles sont importées

Appuyez sur A pour sélectionner toutes les tuiles, puis sur Ctrl + J pour les fusionner en un seul maillage. Sur une grande scène, comptez environ une minute, laissez l'opération se terminer.

Maillage fusionné

Un seul maillage après fusion

Note : quand la scène entière n'a pas besoin d'être rééclairée, supprimez les parties inutiles. Cela améliore les performances dans Unreal Engine.

Étape 3 : réduire les appels de rendu

Dès que ce maillage arrive dans Unreal Engine pour le rééclairage, aucun de ses matériaux n'est utile. Le 3DGS fournit l'image, le maillage proxy ne sert qu'au calcul : ses matériaux ne servent à rien et consomment des ressources.

Chaque texture d'un maillage LixelStudio est un appel de rendu dans Unreal Engine. À grande échelle, cela produit un très grand nombre d'appels de rendu, et utiliser le maillage tel quel comme proxy provoque des saccades.

Sélectionnez le maillage dans la Collection et vérifiez le nombre d'appels de rendu avec la console Python de Blender.

Console Python de Blender

Passage à la console Python

Collez la commande suivante et appuyez sur Enter :

obj = bpy.context.object
print("Material slots:", len(obj.data.materials))
Sortie du nombre d'emplacements de matériaux

La valeur affichée correspond au nombre d'appels de rendu

Le maillage de la capture compte 8859 appels de rendu.

Pour faire baisser ce nombre, supprimez tous les matériaux existants et remplacez-les par un seul :

import bpy

# Get the currently selected object in Blender
obj = bpy.context.object

# Make sure a valid Mesh object is selected
if obj is None or obj.type != "MESH":
    raise Exception("Please select a Mesh object first.")

# Create a new white clay material
mat = bpy.data.materials.new("M_White_Clay")
mat.use_nodes = True

# Configure the Principled BSDF shader settings
bsdf = mat.node_tree.nodes.get("Principled BSDF")
if bsdf:
    bsdf.inputs["Base Color"].default_value = (1, 1, 1, 1)  # White color
    bsdf.inputs["Roughness"].default_value = 1.0            # Fully rough / matte surface
    bsdf.inputs["Metallic"].default_value = 0.0             # Non-metallic material
    bsdf.inputs["Alpha"].default_value = 1.0                # Fully opaque

# Remove all existing material slots from the mesh
obj.data.materials.clear()

# Add the single new white material
obj.data.materials.append(mat)

# Assign every face to material slot 0
for poly in obj.data.polygons:
    poly.material_index = 0

# Print the result for verification
print("Done")
print("Material slots:", len(obj.data.materials))
print("Used material indices:", len(set(p.material_index for p in obj.data.polygons)))
print("Estimated draw calls:", len(set(p.material_index for p in obj.data.polygons)))

Vérifiez ensuite que le nombre d'appels de rendu est bien descendu à un.

Appels de rendu réduits à un

Appels de rendu réduits à un

Étape 4 : importer dans Unreal Engine

Exportez le maillage en .obj ou .fbx, puis importez-le dans Unreal Engine.

Import dans Unreal Engine

Le maillage après import dans Unreal Engine

Suivez ensuite Maillage proxy pour placer l'Actor ProxyMesh et régler le mode de normales sur ProxyMesh.

Si le résultat n'est pas correct, voir Dépannage du maillage proxy.