XGRIDSDocumentazione
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Serie Lixel PortalCam

    • PortalCam P1

      • Panoramica del prodotto
      • Operazioni di base
      • Uso della LCC Scan App
      • Manutenzione e cura
      • FAQ
  • Serie Lixel K

    • Lixel K1

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Fusione delle mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
    • Lixel K2

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione
      • Flusso di scansione
      • Acquisire una nuvola di punti con coordinate assolute
      • Fusione mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Punto di misura
      • Appendice
      • FAQ
    • Lixel L3

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Acquisizione dei dati
      • Acquisizione di coordinate assolute
      • Appendice
  • Lixel Studio

    • Versione e copyright
    • Installazione e attivazione
    • Interfaccia del software
    • Operazioni sui file
    • Elaborazione del progetto
    • Strumenti
    • Disegno 2D
    • Applicazioni di settore
    • Impostazioni
    • Connessione del dispositivo
    • Domande Frequenti
  • Lixel CyberColor

    • LCC Studio

      • Introduzione
      • Versione e aggiornamenti
      • Download e installazione
      • Panoramica dell'interfaccia e navigazione
      • Operazioni preliminari alla ricostruzione
      • Prima della ricostruzione
      • Ricostruzione del modello
      • Ricostruzione modello singolo
      • Fusione delle mappe
      • Fusione aria-terra
      • Ricostruzione aerea
      • I miei modelli
      • Altre funzioni
      • Impostazioni e account
      • Convertitore
      • Ricostruzione video
      • Domande Frequenti / FAQ
    • LCC Scene Editor

      • Versione e aggiornamenti
      • Account e accesso
      • Panoramica del prodotto e home page
      • Interfaccia dell'editor
      • Modalità di navigazione
      • File
      • Impostazioni
      • Modifica
      • Finestra
      • Barra degli strumenti globale
      • Asset e proprietà
      • Barra degli strumenti sinistra
      • Punti di vista
      • Portale
      • Skybox
      • Annotazioni
      • Misurazione
      • Flythrough
      • Rapporto scena
      • 3D Layout
      • Mini-mappa
      • Modalità Anteprima (Viewer)
      • Aiuto
      • Domande frequenti (FAQ)
      • Punto di spawn
    • LCC Model Editor

      • Versione e aggiornamenti
      • Guida utente
      • Panoramica e interfaccia
      • Operazioni sui file
      • Selettori
      • Modifica dei modelli
      • Misurazione
      • Correzione colore
      • Gestione degli asset
      • Impostazioni e Aiuto
      • Domande frequenti
    • Capture Guide

      • Panoramica
      • Panoramica dei dispositivi di acquisizione
      • Principi generali di acquisizione
      • Acquisizione di scene interne
      • Acquisizione di scene esterne
      • Acquisizione su larga scala (map fusion)
      • Acquisizione per aerial-ground map fusion
      • Acquisizione di oggetti
      • Acquisizione di persone
      • Acquisizione per ricostruzione da video
      • HD Enhancement
      • Control points (Lixel P1)
      • FAQ e risoluzione dei problemi
    • Buone Pratiche

      • Unione di più modelli 3DGS di grandi dimensioni
    • Cronologia versioni
  • Plugin e SDK

    • Unreal

      • Introduzione
      • Avvio rapido - Windows
      • Avvio rapido - Linux
      • Avvio rapido - Quest3
      • Edizioni e licenze
      • Rendering
      • Rasterizzazione Tiled (sperimentale)
      • Impostazioni visive
      • Normali e illuminazione
      • Modifica della scena
      • Parametri di prestazione
      • Guida alle prestazioni
      • Integrazione con plugin di terze parti e del motore
      • Proxy Mesh
      • Animazione di caricamento
      • Collisioni
      • Supporto del Navigation System
      • Supporto di Single Layer Water
      • Localizzazione
      • FAQ
      • Risoluzione dei problemi
      • Log e diagnostica
      • Contattaci
      • Buone pratiche

        • Rilluminare il 3DGS con una mesh di LixelStudio
      • Riferimento API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enum
        • Struct
      • Registro delle modifiche

        • 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

      • Introduzione all'Unity SDK
      • Caratteristiche tecniche
      • Requisiti dell'ambiente di sviluppo
      • Guida rapida per PC
      • Guida all'ottimizzazione delle impostazioni di progetto
      • Guida allo sviluppo per Pico 4 Ultra
      • Guida allo streaming PC per Pico 4 Ultra
      • Guida allo sviluppo per Quest 3
      • Guida allo streaming PC per Quest 3
      • Guida allo sviluppo OpenXR
      • Guida allo streaming Business per Pico 4 Ultra
      • Glossario
      • FAQ
      • Contattaci
      • Guida allo sviluppo delle funzionalità

        • Guida allo sviluppo del rendering misto multi-scena
        • Guida allo sviluppo della ricezione delle ombre
        • Guida allo sviluppo dell'illuminazione in tempo reale
        • Guida allo sviluppo del rendering multi-camera
        • Guida allo sviluppo del rendering di immagini ad alta risoluzione
        • Guida allo sviluppo della compatibilità dei formati dati LCC e LCC2
        • Guida allo sviluppo dell'effetto di caricamento
        • Guida allo sviluppo del cambio di modalità di rendering Mip
        • Guida allo sviluppo dello snap a bordi e angoli
        • Guida allo sviluppo della decal proiettata
        • Guida allo sviluppo della decal proiettata video
        • Guida allo sviluppo dell'evidenziazione
        • Guida allo sviluppo del ritaglio in tempo reale
        • Guida allo sviluppo della regolazione del tono
        • Guida allo sviluppo dell'ottenimento dei dati Mesh della scena
        • Guida allo sviluppo della modalità Editor
        • Guida alla configurazione dei parametri di prestazioni di rendering
        • Guida allo sviluppo del co-impacchettamento di applicazione e dati
        • Guida allo sviluppo del sistema di collisione
        • Guida ai problemi di autorizzazione nello sviluppo su macOS
        • Guida allo sviluppo di compilazione e packaging per dispositivi iOS
      • Riferimento API

        • LCCManager
        • Renderer
        • Tipi di dati
      • Registro delle modifiche

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

      • Introduzione
      • Guida all'ottimizzazione delle prestazioni di rendering
      • Configurazione grafica
      • Domande frequenti
      • Riferimento API

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • Registro delle modifiche

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

Guida allo streaming Business per Pico 4 Ultra

Il Business Streaming di Pico 4 Ultra esegue il rendering del progetto Unity sul PC e lo trasmette in streaming al dispositivo per la navigazione e l'interazione tramite lo strumento Business Streaming ufficiale di PICO, sfruttando così la potenza di calcolo del PC per ottenere prestazioni superiori rispetto al rendering sul dispositivo. Questa guida spiega come integrare l'LCC Unity SDK e completare lo sviluppo dello streaming con Business Streaming.

Requisiti di versione

Di seguito sono indicate le versioni di software e plugin utilizzate in questa guida. Si consiglia di sviluppare con le stesse versioni; altre versioni non testate potrebbero presentare problemi di compatibilità:

Software / PluginVersioneDescrizione
Unityv6000.0.69f1 e successiveUtilizza Unity 6
OpenXR1.61.1 e successiveUnity OpenXR Plugin, installato da Unity Registry
LCC Unity SDKv2.3.0 e successiveOttieni dalla pagina di download dell'LCC Unity SDK
Business Streamingv2.2.0 e successiveOttieni da PICO ufficiale

Nota:

  1. Business Streaming si collega tramite OpenXR, che è diverso dalla Guida allo sviluppo per Pico 4 Ultra che usa il PICO Unity Integration SDK; non confonderli.
  2. La versione di Unity, la versione di OpenXR e la versione dell'LCC SDK influiscono tutte sul rendering e sulle prestazioni, quindi cerca di mantenere ciascuna versione software coerente con questa guida.

Flusso di lavoro di sviluppo

Passaggio 1: Prerequisiti

Scarica e installa Business Streaming v2.2.0 o superiore sia sul computer da cui verrà trasmesso lo streaming sia sul dispositivo Pico 4 Ultra; si consiglia di riavviare il computer una volta dopo l'installazione.

Passaggio 2: Creare un progetto URP

Seleziona il tipo Universal 3D (pipeline di rendering URP) nel modello di progetto, come mostrato di seguito:

Crea un progetto Universal 3D

Crea un progetto Universal 3D

Passaggio 3: Importare Unity OpenXR

Apri la finestra UPM tramite il menu di Unity Finestra → Gestione pacchetti, seleziona Unity Registry nell'elenco a sinistra, inserisci OpenXR nella casella di ricerca, seleziona OpenXR Plugin dai risultati della ricerca e installalo, come mostrato di seguito:

Installa l'OpenXR Plugin da Unity Registry

Installa l'OpenXR Plugin da Unity Registry

Passaggio 4: Importare l'LCC Unity SDK

Apri la finestra UPM tramite il menu di Unity Finestra → Gestione pacchetti, fai clic su + a sinistra, seleziona Installa pacchetto da disco dal menu a discesa, individua l'LCC Unity SDK e seleziona il file package.json da importare, come mostrato di seguito:

Importa l'LCC Unity SDK tramite Installa pacchetto da disco

Importa l'LCC Unity SDK tramite Installa pacchetto da disco

Nota: Dopo aver completato i passaggi precedenti, riavvia Unity prima di procedere con le impostazioni successive.

Passaggio 5: Configurare l'ambiente Unity

Configurare XR Plug-in Management

Seleziona File → Project Settings dalla barra dei menu di Unity, seleziona XR Plug-in Management a sinistra, spunta Initialize XR on Startup nella scheda PC, Mac & Linux Standalone Settings e spunta OpenXR come Plug-in Provider, come mostrato di seguito:

Spunta Initialize XR on Startup e OpenXR in XR Plug-in Management

Spunta Initialize XR on Startup e OpenXR in XR Plug-in Management

Nota: Se dopo OpenXR appare un'icona di avviso gialla, fai clic su Fix All per correggere tutto.

Seleziona la voce OpenXR in XR Plug-in Management e imposta Render Mode su Single Pass Instanced o Multi Pass secondo necessità; in genere Single Pass Instanced offre prestazioni migliori, e le restanti impostazioni restano ai valori predefiniti, come mostrato di seguito:

Imposta la Render Mode OpenXR su Single Pass Instanced o Multi Pass

Imposta la Render Mode OpenXR su Single Pass Instanced o Multi Pass

Configurare le API grafiche

Apri il pannello delle impostazioni tramite Edit → Project Settings → Player, seleziona la voce Other nella scheda della piattaforma corrispondente e configura le API grafiche per piattaforma:

PiattaformaAzione
WindowsDeseleziona Auto Graphics API for Windows e aggiungi DirectX12, Vulkan e DirectX11 come le tre API grafiche
macOSDeseleziona Auto Graphics API for Mac e mantieni l'API grafica Metal
LinuxDeseleziona Auto Graphics API for Linux e mantieni l'API grafica Vulkan

Nota: Sulla piattaforma Windows, si consiglia di usare DirectX12 o Vulkan, che offrono prestazioni migliori; per DirectX11, si consiglia di abilitare il rendering HDR per evitare artefatti di rendering.

Passaggio 6: Creare la scena

Questo esempio parte da una Scene completamente nuova. Crea una scena Unity (Scene), fai clic con il pulsante destro in un'area vuota della finestra Gerarchia e seleziona XR → Convert Main Camera To XR Rig dal menu a comparsa per convertire la Camera principale in una camera XR.

Passaggio 7: Configurare la scena

Seleziona il GameObject XR Rig nella finestra Gerarchia e, nella finestra delle proprietà (Inspector), imposta il Request Tracking Mode della proprietà Camera Offset su Floor, come mostrato di seguito:

Imposta Request Tracking Mode del Camera Offset dell'XR Rig su Floor

Imposta Request Tracking Mode del Camera Offset dell'XR Rig su Floor

Seleziona il GameObject XR Rig → Camera Offset → Camera principale nella finestra Gerarchia e imposta le proprietà del componente Camera nella finestra delle proprietà (Inspector): Clipping Planes Near = 0.3, Far = 5000; Anti-aliasing = No Anti-aliasing; Opaque Texture = Off, Depth Texture = Off; Background Type = Solid Color, Background = nero; HDR Rendering = Off, MSAA = Off, URP Dynamic Resolution = Off, come mostrato di seguito:

Imposta le proprietà del componente Camera della Camera principale sotto XR Rig

Imposta le proprietà del componente Camera della Camera principale sotto XR Rig

Passaggio 8: Scrivere il codice per caricare la scena

Fai clic con il pulsante destro su Crea vuoto nella finestra Gerarchia per creare un oggetto vuoto, denominalo LCCManager, normalizza il suo Transform e collega lo script LCCManager tramite Aggiungi componente, come mostrato di seguito:

Crea un oggetto vuoto LCCManager e collega lo script LCCManager

Crea un oggetto vuoto LCCManager e collega lo script LCCManager

Fai clic con il pulsante destro su Crea vuoto nella finestra Gerarchia per creare un altro oggetto vuoto, denominalo LCCRenderer e imposta il suo Transform con Rotation.x = -90, Scale.x = -1, come mostrato di seguito:

Crea un oggetto vuoto LCCRenderer e imposta il Transform per l'allineamento del sistema di coordinate

Crea un oggetto vuoto LCCRenderer e imposta Rotation.x = -90 e Scale.x = -1 per allineare i sistemi di coordinate

Rotation.x = -90 e Scale.x = -1 sono la trasformazione di allineamento dal sistema di coordinate dei dati LCC (Z in alto, destrorso) al sistema di coordinate di Unity (Y in alto, sinistrorso); vedi "Sistema di coordinate dei dati LCC" in Introduzione all'Unity SDK.

Scrivi uno script C# denominato LCCRenderer.cs con il seguente codice:

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;
        // imposta il tipo di piattaforma su PCVR
        m_manager.SetPlatformType(PlatformType.PCVR);
        m_manager.SetMainCamera(m_mainCamera);
        m_manager.SetLockFPS(false);
        //Imposta lo splat di rendering completo a 15 milioni, il che significa che LCC LOD0 > 15 milioni seguirà il percorso di rendering a blocchi.
        //m_manager.SetFullRenderSplat(1500);
        //Imposta lo splat di rendering massimo a 15 milioni, il che significa che il limite massimo di splat su schermo è di 15 milioni nel percorso di rendering a blocchi.
        //m_manager.SetMaxRenderSplats(1500);
        m_renderer = m_manager.GetRender(this.transform);
        if (m_renderer == null)
            Debug.LogError("GetRender non riuscito, verifica che il manager sia impostato correttamente e che il percorso del file sia valido.");
        m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback, onError);
    }

    private void onLoadProgress(float value)
    {
        Debug.Log($"avanzamento caricamento: {value}");
    }

    private void onLoadCallback()
    {
        //Imposta il LOD iniziale a 2, il che significa che il rendering iniziale sarà al livello LOD2.
        //m_manager.SetStartLod(2);
        Debug.Log("dati caricati !!!");
        m_isLoaded = true;
    }

    private void onError(string error)
    {
        Debug.LogError($"errore di caricamento: {error}");
    }
}

Collega lo script al GameObject LCCRenderer nella finestra Gerarchia, quindi trascina il GameObject LCCManager sulla proprietà Manager dello script nella finestra delle proprietà (Inspector) e infine inserisci il percorso del file LCC.

Dopo aver completato la configurazione precedente, la struttura della scena nella finestra Gerarchia è come mostrato di seguito:

La struttura della scena dopo la configurazione

La struttura della scena dopo la configurazione

Nota: La scena deve mantenere la Luce direzionale, il Global Volume e gli altri oggetti creati per impostazione predefinita nel progetto URP.

Passaggio 9: Configurare Business Streaming

Avvia Business Streaming sul computer, seleziona Settings → General e imposta Default Streaming Type su OpenXR Streaming, come mostrato di seguito:

Imposta Default Streaming Type di Business Streaming su OpenXR Streaming

Imposta Default Streaming Type di Business Streaming su OpenXR Streaming

Passaggio 10: Avviare lo streaming

  1. Collega Pico 4 Ultra al computer tramite USB 3.0 o Wi-Fi ad alta velocità.
  2. Apri Business Streaming sul dispositivo Pico 4 Ultra e collegalo al computer.
  3. Fai clic sul pulsante Play nell'Editor di Unity per eseguire, oppure apri l'applicazione pubblicata, per avviare lo streaming.

Nota:

  1. Per l'uso del software Business Streaming, consulta la documentazione ufficiale PICO: https://business.picoxr.com/cn/doc/Business-Streamingv2.
  2. Per le impostazioni di progetto, consulta la Guida all'ottimizzazione delle impostazioni di progetto.
  3. Lo streaming richiede hardware PC di fascia alta (soprattutto la scheda grafica); usa un computer ad alte prestazioni per lo streaming e usa USB 3.0 o Wi-Fi ad alta velocità.
  4. Lo streaming PCVR esegue il rendering due volte (anche la modalità SPI ha un overhead di vertici raddoppiato), quindi prestazioni e frame rate possono essere migliorati configurando il rendering completo/a blocchi, la quantità massima di rendering su schermo, il livello LOD iniziale, ecc.; per le impostazioni dei parametri, consulta la Guida ai parametri di prestazione del rendering.

Riferimenti correlati

  • Per le impostazioni di progetto e l'ottimizzazione delle prestazioni, consulta i capitoli Guida all'ottimizzazione delle impostazioni di progetto e Guida ai parametri di prestazione del rendering.
  • Per il flusso di lavoro di rendering sul dispositivo che usa il PICO Unity Integration SDK, consulta la Guida allo sviluppo per Pico 4 Ultra.
  • Per altre istruzioni sull'uso di Business Streaming, consulta la documentazione ufficiale PICO: Business Streaming.