Guide Business Streaming du Pico 4 Ultra
Le Business Streaming du Pico 4 Ultra rend le projet Unity sur le PC et le diffuse vers l'appareil pour la navigation et l'interaction via l'outil Business Streaming officiel de PICO, tirant ainsi parti de la puissance de calcul du PC pour obtenir des performances supérieures au rendu sur appareil. Ce guide explique comment intégrer le LCC Unity SDK et terminer le développement de streaming avec Business Streaming.
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 / Plugin | Version | Description |
|---|---|---|
| Unity | v6000.0.69f1 et versions ultérieures | Utilise Unity 6 |
| OpenXR | 1.61.1 et versions ultérieures | Unity OpenXR Plugin, installé depuis Unity Registry |
| LCC Unity SDK | v2.3.0 et versions ultérieures | Obtenu depuis la page de téléchargement du LCC Unity SDK |
| Business Streaming | v2.2.0 et versions ultérieures | Obtenu depuis PICO officiel |
Remarque :
- Business Streaming se connecte via OpenXR, ce qui est différent du Guide de développement Pico 4 Ultra qui utilise le PICO Unity Integration SDK ; ne les mélangez pas.
- La version de Unity, la version d'OpenXR 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 : Prérequis
Téléchargez et installez Business Streaming v2.2.0 ou supérieur à la fois sur l'ordinateur à partir duquel le streaming sera effectué et sur l'appareil Pico 4 Ultra ; il est recommandé de redémarrer l'ordinateur une fois après l'installation.
Étape 2 : Créer un projet URP
Sélectionnez le type Universal 3D (pipeline de rendu URP) dans le modèle de projet, comme illustré ci-dessous :

Créer un projet Universal 3D
É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
É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, 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
Remarque : après avoir terminé les étapes ci-dessus, redémarrez Unity avant de procéder aux réglages suivants.
Étape 5 : 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, cochez Initialize XR on Startup sous l'onglet PC, Mac & Linux Standalone Settings, et cochez OpenXR comme Plug-in Provider, comme illustré ci-dessous :

Cocher Initialize XR on Startup et OpenXR dans XR Plug-in Management
Remarque : si une icône d'avertissement jaune apparaît après OpenXR, cliquez sur Fix All pour tout corriger.
Sélectionnez l'élément OpenXR sous XR Plug-in Management, et définissez Render Mode sur Single Pass Instanced ou Multi Pass selon les besoins ; en général, Single Pass Instanced offre de meilleures performances, et les paramètres restants conservent leurs valeurs par défaut, comme illustré ci-dessous :

Définir le Render Mode OpenXR sur Single Pass Instanced ou Multi Pass
Configurer les API graphiques
Ouvrez le panneau des paramètres via Édition → Paramètres du projet → Player, sélectionnez l'élément Other sous l'onglet de la plateforme correspondante, et configurez les API graphiques pour chaque plateforme :
| Plateforme | Action |
|---|---|
| Windows | Décochez Auto Graphics API for Windows, et ajoutez DirectX12, Vulkan et DirectX11 comme les trois API graphiques |
| macOS | Décochez Auto Graphics API for Mac, et conservez l'API graphique Metal |
| Linux | Décochez Auto Graphics API for Linux, et conservez l'API graphique Vulkan |
Remarque : sur la plateforme Windows, il est recommandé d'utiliser DirectX12 ou Vulkan, qui offrent de meilleures performances ; pour DirectX11, il est recommandé d'activer le rendu HDR pour éviter les artefacts de rendu.
Étape 6 : Créer la scène
Cet exemple part d'une toute nouvelle scène. Créez une scène Unity (Scène), faites un clic droit dans une zone vide de la fenêtre de hiérarchie (Hiérarchie), et sélectionnez XR → Convert Main Camera To XR Rig dans le menu contextuel pour convertir la Caméra principale en caméra XR.
Étape 7 : Configurer la scène
Sélectionnez le GameObject XR Rig dans la fenêtre de hiérarchie (Hiérarchie), et dans la fenêtre de propriétés (Inspecteur), définissez le Request Tracking Mode de la propriété Camera Offset sur Floor, comme illustré ci-dessous :
Définir le Request Tracking Mode du Camera Offset de XR Rig sur Floor
Sélectionnez le GameObject XR Rig → Camera Offset → Caméra principale dans la fenêtre de hiérarchie (Hiérarchie), et définissez les propriétés du composant Camera dans la fenêtre de propriétés (Inspecteur) : Clipping Planes Near = 0.3, Far = 5000 ; Anti-aliasing = No Anti-aliasing ; Opaque Texture = Off, Depth Texture = Off ; Background Type = Solid Color, Background = noir ; HDR Rendering = Off, MSAA = Off, URP Dynamic Resolution = Off, comme illustré ci-dessous :

Définir les propriétés du composant Camera de la Caméra principale sous XR Rig
Étape 8 : É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 le script LCCManager via Ajouter un composant, comme illustré ci-dessous :

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 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;
[DefaultExecutionOrder(100)]
public class LCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
private Camera m_mainCamera;
private bool m_isLoaded = false;
void Start()
{
m_mainCamera = Camera.main;
// définir le type de plateforme sur PCVR
m_manager.SetPlatformType(PlatformType.PCVR);
m_manager.SetMainCamera(m_mainCamera);
m_manager.SetLockFPS(false);
//Définit le splat de rendu complet à 15 millions, ce qui signifie que LCC LOD0 > 15 millions empruntera le chemin de rendu par blocs.
//m_manager.SetFullRenderSplat(1500);
//Définit le splat de rendu maximal à 15 millions, ce qui signifie que la limite maximale de splats à l'écran est de 15 millions sur le chemin de rendu par blocs.
//m_manager.SetMaxRenderSplats(1500);
m_renderer = m_manager.GetRender(this.transform);
if (m_renderer == null)
Debug.LogError("Échec de GetRender, vérifiez que le manager est correctement défini et que le chemin du fichier est valide.");
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback, onError);
}
private void onLoadProgress(float value)
{
Debug.Log($"progression du chargement : {value}");
}
private void onLoadCallback()
{
//Définit le LOD initial à 2, ce qui signifie que le rendu initial sera au niveau LOD2.
//m_manager.SetStartLod(2);
Debug.Log("données chargées !!!");
m_isLoaded = true;
}
private void onError(string error)
{
Debug.LogError($"erreur de chargement : {error}");
}
}
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.
Après avoir terminé la configuration ci-dessus, la structure de la scène dans la fenêtre de hiérarchie (Hiérarchie) est comme illustré ci-dessous :

La structure de la scène après configuration
Remarque : la scène doit conserver la Lumière directionnelle, le Global Volume et les autres objets créés par défaut dans le projet URP.
Étape 9 : Configurer Business Streaming
Lancez Business Streaming sur l'ordinateur, sélectionnez Settings → General, et définissez Default Streaming Type sur OpenXR Streaming, comme illustré ci-dessous :

Définir le Default Streaming Type de Business Streaming sur OpenXR Streaming
Étape 10 : Démarrer le streaming
- Connectez le Pico 4 Ultra à l'ordinateur via USB 3.0 ou Wi-Fi haut débit.
- Ouvrez Business Streaming sur l'appareil Pico 4 Ultra et connectez-vous à l'ordinateur.
- Cliquez sur le bouton Play dans l'éditeur Unity pour exécuter, ou ouvrez l'application publiée, pour démarrer le streaming.
Remarque :
- Pour l'utilisation du logiciel Business Streaming, reportez-vous à la documentation officielle de PICO : https://business.picoxr.com/cn/doc/Business-Streamingv2.
- Pour les paramètres de projet, reportez-vous au Guide d'optimisation des paramètres de projet.
- Le streaming nécessite un matériel PC haut de gamme (en particulier la carte graphique) ; utilisez un ordinateur haute performance pour le streaming et utilisez USB 3.0 ou un Wi-Fi haut débit.
- Le streaming PCVR effectue le rendu deux fois (le mode SPI a également une surcharge de sommets doublée), donc les performances et la fréquence d'images peuvent être améliorées en configurant le rendu complet/par blocs, la quantité maximale de rendu à l'écran, le niveau LOD initial, etc. ; pour les réglages des paramètres, reportez-vous au Guide des paramètres de performance de rendu.
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 le flux de travail de rendu sur appareil utilisant le PICO Unity Integration SDK, voir le Guide de développement Pico 4 Ultra.
- Pour d'autres instructions d'utilisation de Business Streaming, reportez-vous à la documentation officielle de PICO : Business Streaming.