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 / Package | Version | Description |
|---|---|---|
| Unity | v2022.3.62f3 | Utilise Unity 2022 LTS |
| PICO Unity Integration SDK | v3.4.0 | Obtenu depuis le canal officiel de PICO |
| LCC Unity SDK | v2.1.27 et versions ultérieures | La 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 :
- É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.
- 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.
- 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)
É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
É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
É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
É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
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
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
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
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
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é
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
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 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
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
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)
É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)
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
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)
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
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 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
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 :
- Exécutez d'abord l'application compilée une fois sur l'appareil PICO.
- 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
LccDatasous le sous-répertoire Files. - Copiez toutes les sources de données LCC dans le dossier
LccData.
Remarque :
- 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.
- 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.
- Lors du rendu de grandes scènes LCC, il est recommandé de définir StartLOD sur
2et 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.