XGRIDSDocumentation
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 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
    • Bonnes Pratiques

      • Fusion de plusieurs modèles 3DGS de grande taille
  • 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
    • Unity

      • Introduction au SDK Unity
      • Fonctionnalités techniques
      • Exigences de l'environnement de développement
      • Guide de démarrage rapide PC
      • Guide d'optimisation des paramètres de projet
      • Guide de développement Pico 4 Ultra
      • Guide de streaming PC du Pico 4 Ultra
      • Guide de développement Quest 3
      • Guide de streaming PC du Quest 3
      • Guide de développement OpenXR
      • Guide Business Streaming du Pico 4 Ultra
      • Glossaire
      • FAQ
      • Nous contacter
      • Guide de développement des fonctionnalités

        • Guide de développement du rendu mixte multi-scènes
        • Guide de développement de la réception des ombres
        • Guide de développement de l'éclairage en temps réel
        • Guide de développement du rendu multi-caméras
        • Guide de développement du rendu d'images haute résolution
        • Guide de développement de la compatibilité des formats de données LCC et LCC2
        • Guide de développement de l'effet de chargement
        • Guide de développement du basculement du mode de rendu Mip
        • Guide de développement de l'accrochage aux arêtes et aux coins
        • Guide de développement du décalque projeté
        • Guide de développement du décalque projeté vidéo
        • Guide de développement du surlignage
        • Guide de développement de la découpe en temps réel
        • Guide de développement du réglage des couleurs
        • Guide de développement de l'obtention des données Mesh de la scène
        • Guide de développement du mode éditeur
        • Guide de configuration des paramètres de performance de rendu
        • Guide de développement du co-packageage de l'application et des données
        • Guide de développement du système de collision
        • Guide des problèmes d'autorisation de développement macOS
        • Guide de développement de la compilation et du packageage sur appareil iOS
      • Référence de l'API

        • LCCManager
        • Renderer
        • Types de données
      • Journal des modifications

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14

Guide de développement Quest 3

Le flux de travail de développement LCC pour le Quest 3 est légèrement différent du flux de travail officiel de création de projet VR de Meta : les modifications officielles de Meta apportées à la configuration Unity rendent le rendu LCC incompatible avec le flux de travail recommandé dans leur documentation de développement. Voir le flux de travail officiel de Meta sur Set up Unity for XR development. En s'appuyant sur ce flux de travail, ce guide explique comment intégrer le LCC Unity SDK pour rendre des scènes 3DGS.

Exigences de version

Les versions de logiciels et de plugins utilisées dans ce guide sont les suivantes. Il est recommandé de développer avec les mêmes versions ; d'autres versions non testées peuvent présenter des problèmes de compatibilité :

Logiciel / PluginVersion
Unityv6000.0.69f1
Meta XR All-in-One SDKv205.0.0
LCC Unity SDKv2.1.35 et versions ultérieures

Remarque :

  1. Le Meta SDK ne prend en charge que l'espace colorimétrique Linear d'URP, et les scènes LCC rendues dans cet espace colorimétrique paraîtront légèrement délavées.
  2. La version de Unity, la version du Meta SDK et la version du LCC SDK affectent toutes le rendu et les performances ; essayez donc de garder chaque version logicielle cohérente avec ce guide.

Flux de travail de développement

Étape 1 : Créer un projet URP

Sélectionnez Universal 3D dans le modèle de projet, comme illustré ci-dessous :

Créer un projet Universal 3D (URP)

Créer un projet Universal 3D (URP)

Étape 2 : Basculer de plateforme

Une fois le projet créé, sélectionnez Fichier → Build Profiles dans le menu Unity pour ouvrir la fenêtre de compilation, et basculez la plateforme vers Android, comme illustré ci-dessous :

Basculer la plateforme vers Android dans Build Profiles

Basculer la plateforme vers Android dans Build Profiles

Étape 3 : Importer Unity OpenXR

Ouvrez la fenêtre UPM via le menu Unity Fenêtre → Package Manager, sélectionnez Unity Registry dans la liste de gauche, saisissez OpenXR dans la zone de recherche, sélectionnez OpenXR Plugin dans les résultats et installez-le, comme illustré ci-dessous :

Installer l'OpenXR Plugin depuis Unity Registry

Installer l'OpenXR Plugin depuis Unity Registry

Étape 4 : Importer XR Interaction Toolkit

Sélectionnez Unity Registry dans la liste de gauche, saisissez XR dans la zone de recherche, sélectionnez XR Interaction Toolkit dans les résultats et installez-le, comme illustré ci-dessous :

Installer XR Interaction Toolkit depuis Unity Registry

Installer XR Interaction Toolkit depuis Unity Registry

Étape 5 : Importer le Meta XR All-in-One SDK

Le Meta XR All-in-One SDK est la boîte à outils de développement XR de Meta ; voir Meta XR All-in-One SDK (UPM).

Avant d'utiliser ce SDK, ajoutez-le à vos actifs personnels dans l'Unity Asset Store : https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657. Ensuite, ouvrez l'UPM via Fenêtre → Package Manager, sélectionnez My Assets à gauche, saisissez Meta XR dans la zone de recherche, et installez Meta XR All-in-One SDK, comme illustré ci-dessous :

Installer Meta XR All-in-One SDK depuis My Assets

Installer Meta XR All-in-One SDK depuis My Assets

Étape 6 : Importer le LCC Unity SDK

Ouvrez la fenêtre UPM via le menu Unity Fenêtre → Package Manager, cliquez sur + à gauche, sélectionnez Install package from disk dans le menu déroulant, localisez le LCC Unity SDK, puis sélectionnez le fichier package.json pour l'importer, comme illustré ci-dessous :

Importer le LCC Unity SDK via Install package from disk

Importer le LCC Unity SDK via Install package from disk

Après avoir terminé les étapes ci-dessus, redémarrez Unity avant de procéder aux réglages suivants.

Étape 7 : Configurer l'environnement Unity

Configurer XR Plug-in Management

Sélectionnez Fichier → Paramètres du projet dans la barre de menus Unity, sélectionnez XR Plug-in Management à gauche, et cochez Initialize XR on Startup sous les plateformes Desktop et Android, comme illustré ci-dessous :

Cocher Initialize XR on Startup sur la plateforme Desktop

Cocher Initialize XR on Startup sur la plateforme Desktop

Cocher Initialize XR on Startup sur la plateforme Android

Cocher Initialize XR on Startup sur la plateforme Android

Sélectionnez l'élément OpenXR sous XR Plug-in Management, et définissez le Render Mode des plateformes Desktop et Android sur Multi-pass, comme illustré ci-dessous :

Définir le Render Mode OpenXR sur Multi-pass

Définir le Render Mode OpenXR sur Multi-pass

Remarque : le Meta XR All-in-One SDK modifiera la valeur du Render Mode ; assurez-vous que cette valeur est Multi-pass avant la compilation.

Configurer Player (plateforme Desktop)

Sélectionnez Player à gauche de Paramètres du projet, basculez vers la plateforme Desktop, déployez la section Other Settings, décochez Auto Graphics API, définissez Graphics APIs sur Vulkan, Direct3D12, Direct3D11, et supprimez les autres API graphiques ; définissez Color Space sur Linear, comme illustré ci-dessous :

Définir les API graphiques et l'espace colorimétrique Linear sur la plateforme Desktop

Définir les API graphiques et l'espace colorimétrique Linear sur la plateforme Desktop

Configurer Player (plateforme Android)

Sélectionnez Player à gauche de Paramètres du projet, basculez vers la plateforme Android, déployez la section Other Settings, décochez Auto Graphics API, définissez Graphics APIs sur Vulkan, et supprimez les autres API graphiques ; définissez Color Space sur Linear (le Meta SDK ne prend en charge que l'espace colorimétrique Linear), comme illustré ci-dessous :

Définir l'API graphique sur Vulkan et l'espace colorimétrique Linear sur la plateforme Android

Définir l'API graphique sur Vulkan et l'espace colorimétrique Linear sur la plateforme Android

Définir Company Name et Product Name

Dans l'onglet Player, définissez correctement Company Name et Product Name, comme illustré ci-dessous :

Définir Company Name et Product Name

Définir Company Name et Product Name

Définir le backend de script et la saisie de la plateforme Android

Faites défiler l'onglet Other Settings de la plateforme Android vers le bas, et définissez Minimum API Level = Android 12L (API Level 32) ou supérieur, Scripting Backend = IL2CPP, Target Architectures = ARM64, Active Input Handling = Input System Package (New), comme illustré ci-dessous :

Définir Minimum API Level, Scripting Backend, Target Architectures et Active Input Handling

Définir Minimum API Level, Scripting Backend, Target Architectures et Active Input Handling

Vérifier Graphismes et Qualité

Sélectionnez Graphismes à gauche de Paramètres du projet, et vérifiez le Render Asset correspondant au Default Render Pipeline utilisé par la plateforme Mobile, Mobile_RPAsset dans cet exemple, comme illustré ci-dessous :

Vérifier le Render Asset du Default Render Pipeline sur la plateforme Mobile

Vérifier le Render Asset du Default Render Pipeline sur la plateforme Mobile

Sélectionnez Qualité à gauche de Paramètres du projet, vérifiez le Render Asset correspondant au Default Render Pipeline utilisé par la plateforme Mobile (Mobile_RPAsset dans cet exemple), définissez Resolution Scaling Fixed DPI Factor = 0.7, VSync Count = Don't Sync, comme illustré ci-dessous :

Définir le DPI Factor et VSync dans Qualité

Définir le DPI Factor et VSync dans Qualité

Configurer le Render Asset

Trouvez le Render Asset correspondant au Default Render Pipeline utilisé par la plateforme Mobile (Mobile_RPAsset dans cet exemple). Après avoir cliqué dessus, l'Asset sera localisé dans la fenêtre de projet (Projet). Sélectionnez l'Asset, puis dans la fenêtre de propriétés (Inspecteur) : décochez Depth Texture, Opaque Texture, HDR ; définissez Anti Aliasing (MSAA) = Disabled, Render Scale = 0.7, Upscaling Filter = Automatic, comme illustré ci-dessous :

Désactiver Depth/Opaque Texture, HDR, MSAA et définir le Render Scale dans le Render Asset

Désactiver Depth/Opaque Texture, HDR, MSAA et définir Render Scale = 0.7 dans le Render Asset

Trouvez le Renderer correspondant à ce Render Asset, Mobile_Renderer (Universal Renderer Data) dans cet exemple, et définissez ses propriétés pertinentes dans la fenêtre de propriétés (Inspecteur), comme illustré ci-dessous :

Configurer les propriétés de Mobile_Renderer (Universal Renderer Data)

Configurer les propriétés de Mobile_Renderer (Universal Renderer Data)

Project Validation

Sélectionnez XR Plug-in Management à gauche de Paramètres du projet, puis sélectionnez Project Validation. Corrigez les éléments de validation marqués en rouge — cliquez sur le bouton Fix à droite de chaque élément rouge pour le corriger ; les éléments d'avertissement jaunes peuvent être corrigés selon les besoins ou laissés non traités pour l'instant. Avant traitement, comme illustré ci-dessous :

Project Validation avant traitement (éléments marqués en rouge présents)

Project Validation avant traitement (éléments marqués en rouge présents)

Après traitement, comme illustré ci-dessous :

Project Validation après traitement (éléments marqués en rouge corrigés)

Project Validation après traitement (éléments marqués en rouge corrigés)

Étape 8 : Créer la scène

Cet exemple part d'une toute nouvelle scène (Scène). Après avoir créé une scène Unity, supprimez le GameObject Caméra principale dans la fenêtre de hiérarchie (Hiérarchie), puis faites un clic droit dans une zone vide de la fenêtre et sélectionnez XR → XR Origin (VR) dans le menu contextuel, comme illustré ci-dessous :

Créer XR Origin (VR) via le menu contextuel

Créer XR Origin (VR) via le menu contextuel

Étape 9 : Configurer la scène

Sélectionnez le GameObject XR Origin (VR) dans la fenêtre de hiérarchie (Hiérarchie), et dans le composant XR Origin de la fenêtre de propriétés (Inspecteur), définissez Tracking Origin Mode sur Floor, comme illustré ci-dessous :

Définir le Tracking Origin Mode de XR Origin sur Floor

Définir le Tracking Origin Mode de XR Origin sur Floor

Sélectionnez le GameObject Caméra principale sous XR Origin (VR) dans la fenêtre de hiérarchie (Hiérarchie), et définissez les propriétés de la caméra dans la fenêtre de propriétés (Inspecteur) :

PropriétéValeur recommandéeDescription
Field of View60FOV
Clipping Planes → Near0.2 ~ 0.3Plan de découpe proche
Clipping Planes → Far3000 ~ 5000Plan de découpe lointain, couvrant les scènes à grande échelle
Anti-aliasingNo Anti-aliasingAnti-aliasing désactivé par défaut
Opaque TextureOffDésactivé par défaut
Depth TextureOffDésactivé par défaut
Background TypeSolid ColorUne couleur unie est recommandée
BackgroundBlackLa couleur d'arrière-plan par défaut recommandée est le noir
HDR RenderingOffDésactivé par défaut
MSAAOffDésactivé par défaut
URP Dynamic ResolutionOffDésactivé par défaut

Les autres propriétés sont comme illustré ci-dessous :

Définir les propriétés du composant Camera de la Caméra principale sous XR Origin (VR)

Définir les propriétés du composant Camera de la Caméra principale sous XR Origin (VR)

Étape 10 : Écrire le code pour charger la scène

Faites un clic droit Créer vide dans la fenêtre de hiérarchie (Hiérarchie) pour créer un objet vide, nommez-le LCCManager, normalisez son Transform, et attachez-y le script LCCManager, comme illustré ci-dessous :

Créer un objet vide LCCManager et attacher le script LCCManager

Créer un objet vide LCCManager et attacher le script LCCManager

Faites un clic droit Créer vide dans la fenêtre de hiérarchie (Hiérarchie) pour créer un autre objet vide, nommez-le LCCRenderer, et définissez son Transform Rotation.x = -90, Scale.x = -1, comme illustré ci-dessous :

Créer un objet vide LCCRenderer et définir le Transform pour l'alignement du système de coordonnées

Créer un objet vide LCCRenderer, et définir Rotation.x = -90 et Scale.x = -1 pour aligner les systèmes de coordonnées

Rotation.x = -90 et Scale.x = -1 constituent la transformation d'alignement du système de coordonnées des données LCC (axe Z vers le haut, droitier) vers le système de coordonnées Unity (axe Y vers le haut, gaucher) ; voir « Système de coordonnées des données LCC » dans Introduction au SDK Unity.

Écrivez un script C# nommé LCCRenderer.cs avec le code suivant :

using LCCCore;
using UnityEngine;

public class LCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;

    private LCCCore.Renderer m_renderer;

    void Start()
    {
#if UNITY_EDITOR
        m_manager.SetPlatformType(PlatformType.PC);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load(m_FilePath, onProgress, onLoaded);
#else
        m_manager.SetPlatformType(PlatformType.Quest);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load(m_FilePath, onProgress, onLoaded);
        //m_renderer.Load($"{Application.persistentDataPath}/LccData/meta.lcc2", onProgress, onLoaded);
#endif
    }

    private void onProgress(float v)
    {
        Debug.Log("progression :" + v);
    }

    private void onLoaded()
    {
        m_manager.SetStartLod(2);
        m_renderer.SetEnvironment(false);
        Debug.Log("Données chargées");
    }
}

Attachez le script au GameObject LCCRenderer dans la fenêtre de hiérarchie (Hiérarchie), puis faites glisser le GameObject LCCManager sur la propriété Manager du script dans la fenêtre de propriétés (Inspecteur), et enfin renseignez le chemin du fichier LCC, puis compilez et exécutez.

Attacher le script LCCRenderer à l'objet et lier le Manager et le chemin du fichier

Attacher le script LCCRenderer à l'objet, et lier le Manager et le chemin du fichier

Pour faciliter le débogage dans l'éditeur Unity et la compilation directe vers un appareil Android, le code utilise des macros de compilation pour distinguer l'environnement d'exécution : utilisez la plateforme PC dans l'éditeur Unity, et la plateforme Quest sur un appareil Quest.

Pour les appareils Quest, il est recommandé de placer la source de données sur un serveur ; pendant les tests, vous pouvez également utiliser directement la source de données sur l'appareil. Les étapes spécifiques sont :

  1. Exécutez l'application compilée sur l'appareil Quest une fois.
  2. Une fois l'application installée, entrez dans son répertoire de données (généralement Stockage de l'appareil Quest → Android → data → app BundleID → Files ; reportez-vous au chemin d'installation de l'application Android pour le répertoire spécifique), et créez un dossier LccData sous le sous-répertoire Files.
  3. Copiez toutes les sources de données LCC dans le dossier LccData.

Remarque :

  1. En pratique, il est recommandé de placer la source de données de l'application Quest sur un serveur plutôt que de la packager directement dans l'application.
  2. La capacité de rendu à l'écran du Quest 3 pour le 3DGS est d'environ 700 000 primitives gaussiennes, soit environ deux ordres de grandeur de moins que la capacité côté PC d'environ 25 millions. Il est recommandé principalement pour le rendu et l'affichage de petites scènes et d'objets uniques ; les grandes scènes seront plus fluides avec le streaming PC.
  3. Lors du rendu de grandes scènes LCC, il est recommandé de définir StartLOD sur 2 et de désactiver l'affichage des données d'environnement (comme illustré dans le code d'exemple).

Référence associée

  • Pour les paramètres de projet et l'optimisation des performances, voir les chapitres Guide d'optimisation des paramètres de projet et Guide des paramètres de performance de rendu.
  • Pour d'autres flux de travail de développement Meta, reportez-vous à la documentation officielle : Documentation développeur Meta.
  • Pendant le développement Quest, définissez le Render Mode de la plateforme Desktop sur Multi-pass dans Paramètres du projet → OpenXR ; sinon les scènes LCC ne peuvent pas être rendues normalement dans Unity (y compris à la fois dans l'éditeur et à l'exécution).