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 Pico 4 Ultra

Le flux de travail de développement LCC pour le Pico 4 Ultra est essentiellement le même que le flux de travail officiel de création de projet VR de PICO ; voir la documentation du PICO Unity Integration SDK. Ce guide s'appuie sur cela pour expliquer comment intégrer le LCC Unity SDK afin de rendre des scènes 3DGS.

Exigences de version

Les versions de logiciels et de packages utilisées dans ce guide sont listées ci-dessous. 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 / PackageVersionDescription
Unityv2022.3.62f3Utilise Unity 2022 LTS
PICO Unity Integration SDKv3.4.0Obtenu depuis le canal officiel de PICO
LCC Unity SDKv2.1.27 et versions ultérieuresLa version prenant en charge Built-in ; téléchargez la version compatible Unity 2022 LTS

Voir Exigences de l'environnement de développement pour des exigences matérielles et logicielles plus détaillées.

Remarque :

  1. Étant donné que le PICO Unity Integration SDK présente de sérieux problèmes de performance sur le pipeline URP, le pipeline de rendu Built-in est recommandé ; voir ses problèmes connus.
  2. Si vous testez avec Unity v6000.0.69f1 et constatez que l'application se fige ou plante, passez à Unity v2022.3 LTS : les appareils de la série PICO 4 ont des problèmes de compatibilité avec les applications qui utilisent Unity 6 et Vulkan ensemble ; voir ses problèmes connus.
  3. La version de Unity, la version du SDK PICO et la version du SDK LCC affectent toutes le rendu et les performances ; essayez de garder chaque version logicielle cohérente avec ce guide.

Flux de travail de développement

Étape 1 : Créer le projet

Dans le modèle de projet, sélectionnez le type 3D (Built-in Render Pipeline). Étant donné que le PICO Unity Integration SDK présente de sérieux problèmes de performance sur le pipeline URP, ne sélectionnez pas le pipeline URP, comme illustré ci-dessous :

Créer un projet 3D (Built-in Render Pipeline)

Créer un projet 3D (Built-in Render Pipeline)

Étape 2 : Basculer de plateforme

Dans le menu Unity, sélectionnez Fichier → Build Profiles 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 le PICO Unity Integration SDK

Téléchargez le PICO Unity Integration SDK depuis le site officiel de PICO et installez-le en suivant le tutoriel PICO ; vous pouvez également l'importer directement depuis GitHub à l'adresse https://github.com/Pico-Developer/PICO-Unity-Integration-SDK.git. Ce guide utilise la version v3.4.0, comme illustré ci-dessous :

Importer le PICO Unity Integration SDK v3.4.0

Importer le PICO Unity Integration SDK v3.4.0

Étape 4 : 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, naviguez jusqu'au LCC Unity SDK, puis sélectionnez le fichier package.json à 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

Étape 5 : Configurer l'environnement Unity

Configurer XR Plug-in Management

Dans la barre de menus Unity, sélectionnez Fichier → Paramètres du projet, sélectionnez XR Plug-in Management à gauche, et cochez Initialize XR on Startup sous l'onglet de la plateforme Android, comme illustré ci-dessous :

Cocher Initialize XR on Startup dans XR Plug-in Management

Cocher Initialize XR on Startup dans XR Plug-in Management

Sélectionnez l'élément PICO sous XR Plug-in Management et définissez le Render Mode de la plateforme Android sur MultiView, comme illustré ci-dessous :

Définir le Render Mode PICO sur MultiView

Définir le Render Mode PICO sur MultiView

Sélectionnez l'élément Project Validation sous XR Plug-in Management et cliquez sur Fix All pour compléter les paramètres nécessaires (cela peut aussi être ignoré et créé manuellement plus tard), comme illustré ci-dessous :

Cliquer sur Fix All dans Project Validation

Cliquer sur Fix All dans Project Validation

Remarque :

  • Cliquer sur Fix All crée les GameObjects nécessaires dans la scène actuellement ouverte, vous devez donc supprimer la Caméra principale et la Lumière directionnelle de la scène.
  • Cet exemple ne corrige que UIOrientation.LandscapeLeft ; tout le reste est créé manuellement.

Configurer le Keystore

Le développement PICO nécessite un Keystore. Allez dans Player → onglet Android → Publishing Settings → Keystore Manager, créez un nouveau Keystore et complétez les paramètres, comme illustré ci-dessous :

Créer un nouveau Keystore dans Keystore Manager

Créer un nouveau Keystore dans Keystore Manager

Définir le nom de l'entreprise et le nom du produit

Le développement PICO n'autorise pas le defaultCompany par défaut. 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

Configurer les options de qualité

Dans Paramètres du projet, sélectionnez l'onglet Qualité et définissez Anti Aliasing = Disabled, Resolution Scaling Fixed DPI Factor = 0.7, et VSync Count = Don't Sync, comme illustré ci-dessous :

Désactiver l'anti-aliasing et définir le DPI Factor et VSync dans l'onglet Qualité

Désactiver l'anti-aliasing et définir le DPI Factor et VSync dans l'onglet Qualité

Renseigner l'AppID

Dans le menu Unity, sélectionnez PICO → Platform → Platform Setting pour ouvrir le panneau des paramètres, et saisissez l'AppID demandé sur la plateforme de développement PICO dans Paste your App ID here ; voir Créer un compte développeur, une organisation et une application.

Saisir l'AppID dans PICO Platform Setting

Saisir l'AppID dans PICO Platform Setting

Configurer Graphismes

Dans Paramètres du projet, sélectionnez l'onglet Graphismes, sélectionnez la plateforme Android, et configurez comme illustré ci-dessous :

Configurer la plateforme Android dans l'onglet Graphismes

Configurer la plateforme Android dans l'onglet Graphismes

Configurer Player

Dans Paramètres du projet, sélectionnez l'onglet Player, sélectionnez la plateforme Android, définissez Color Space = Gamma, décochez Auto Graphics API et ne conservez que Vulkan, les autres paramètres étant comme illustré ci-dessous :

Définir Color Space sur Gamma et ne conserver que Vulkan pour l'API graphique

Définir Color Space sur Gamma et ne conserver que Vulkan pour l'API graphique

Faites défiler l'onglet actuel vers le bas et définissez Minimum API Level = Android 10.0, Scripting Backend = IL2CPP, API Compatibility Level = .NET Standard 2.1, et Target Architectures = ARM64, les autres paramètres étant comme illustré ci-dessous :

Définir Minimum API Level, Scripting Backend, API Compatibility Level et Target Architectures

Définir Minimum API Level, Scripting Backend, API Compatibility Level et Target Architectures

Continuez à faire défiler l'onglet actuel vers le bas et définissez Active Input Handling = Input System Package (New), les autres paramètres étant comme illustré ci-dessous :

Définir Active Input Handling sur Input System Package (New)

Définir Active Input Handling sur Input System Package (New)

Étape 6 : Créer la scène

Créez une toute nouvelle scène dans Unity et supprimez la Caméra principale et la Lumière directionnelle. Cliquez avec le bouton droit dans une zone vide de la fenêtre Hiérarchie, et sélectionnez XR → XR Origin (VR) dans le menu contextuel pour créer les objets XR nécessaires.

Sélectionnez l'objet XR Origin (VR) et ajoutez le composant PXR_Manager via Ajouter un composant dans la fenêtre Inspecteur, puis configurez ses propriétés associées comme illustré ci-dessous :

Ajouter et configurer le composant PXR_Manager sur XR Origin (VR)

Ajouter et configurer le composant PXR_Manager sur XR Origin (VR)

Sélectionnez l'objet XR Origin (VR), et dans le composant XR Origin de la fenêtre Inspecteur, définissez Tracking Origin Mode sur Floor, les autres propriétés étant comme illustré ci-dessous :

Définir le Tracking Origin Mode du composant XR Origin sur Floor

Définir le Tracking Origin Mode du composant XR Origin sur Floor

Sélectionnez la Caméra principale (l'enfant de second niveau de XR Origin (VR)) et définissez les propriétés associées du composant Camera dans la fenêtre Inspecteur, 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)

Dans la fenêtre Hiérarchie, faites un clic droit Créer vide pour créer un objet vide nommé LCCManager, normalisez son Transform, et attachez le script LCCManager via Ajouter un composant, comme illustré ci-dessous :

Créer l'objet vide LCCManager et attacher le script LCCManager

Créer l'objet vide LCCManager et attacher le script LCCManager

Dans la fenêtre Hiérarchie, faites un clic droit Créer vide pour créer un autre objet vide nommé LCCRenderer, et définissez son Transform avec Rotation.x = -90 et Scale.x = -1, comme illustré ci-dessous :

Créer l'objet vide LCCRenderer et définir le Transform aligné sur les coordonnées

Créer l'objet vide LCCRenderer et définir Rotation.x = -90, Scale.x = -1 pour aligner le système 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 (droitier, axe Z vers le haut) vers le système de coordonnées Unity (gaucher, axe Y vers le haut) ; 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;
using UnityEngine.XR;

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

    private LCCCore.Renderer m_renderer;

    private void Awake()
    {
        XRSettings.eyeTextureResolutionScale = 0.8f; // Réduire la résolution de la texture pour améliorer les performances
    }

    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.Pico);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        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 ce script au GameObject LCCRenderer dans la fenêtre Hiérarchie, puis faites glisser le GameObject LCCManager sur la propriété Manager du script dans la fenêtre Inspecteur, et enfin renseignez le chemin du fichier LCC.

Attacher le script LCCRenderer et lier Manager et le chemin du fichier

Attacher le script LCCRenderer et lier 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 : dans l'éditeur, il utilise le chemin spécifié par m_FilePath ; sur l'appareil Android, il utilise la source de données sur appareil. Les données sur appareil sont placées comme suit :

  1. Exécutez d'abord l'application compilée une fois sur l'appareil PICO.
  2. Une fois l'application installée, allez dans son répertoire de données (généralement Stockage de l'appareil PICO → 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 PICO sur un serveur plutôt que de la packager directement dans l'application.
  2. L'appareil Pico 4 Ultra rend environ 700 000 primitives gaussiennes à l'écran à la fois, soit environ deux ordres de grandeur de moins que les ~25 millions sur PC. Il est principalement recommandé pour le rendu et l'affichage de petites scènes et d'objets uniques ; les grandes scènes sont plus fluides via 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 dans le code d'exemple).

Références associées

  • Pour la configuration du projet et l'optimisation des performances, voir Guide d'optimisation des paramètres de projet et Guide de configuration des paramètres de performance de rendu.
  • Pour d'autres flux de travail de développement PICO, voir la documentation officielle : Documentation développeur PICO.