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 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 / PluginVersionDescription
Unityv6000.0.69f1 et versions ultérieuresUtilise Unity 6
OpenXR1.61.1 et versions ultérieuresUnity OpenXR Plugin, installé depuis Unity Registry
LCC Unity SDKv2.3.0 et versions ultérieuresObtenu depuis la page de téléchargement du LCC Unity SDK
Business Streamingv2.2.0 et versions ultérieuresObtenu depuis PICO officiel

Remarque :

  1. 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.
  2. 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

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

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

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

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

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 :

PlateformeAction
WindowsDécochez Auto Graphics API for Windows, et ajoutez DirectX12, Vulkan et DirectX11 comme les trois API graphiques
macOSDécochez Auto Graphics API for Mac, et conservez l'API graphique Metal
LinuxDé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

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

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

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;

[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

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

Définir le Default Streaming Type de Business Streaming sur OpenXR Streaming

Étape 10 : Démarrer le streaming

  1. Connectez le Pico 4 Ultra à l'ordinateur via USB 3.0 ou Wi-Fi haut débit.
  2. Ouvrez Business Streaming sur l'appareil Pico 4 Ultra et connectez-vous à l'ordinateur.
  3. Cliquez sur le bouton Play dans l'éditeur Unity pour exécuter, ou ouvrez l'application publiée, pour démarrer le streaming.

Remarque :

  1. Pour l'utilisation du logiciel Business Streaming, reportez-vous à la documentation officielle de PICO : https://business.picoxr.com/cn/doc/Business-Streamingv2.
  2. Pour les paramètres de projet, reportez-vous au Guide d'optimisation des paramètres de projet.
  3. 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.
  4. 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.