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 / Plugin | Versione | Descrizione |
|---|---|---|
| Unity | v6000.0.69f1 e successive | Utilizza Unity 6 |
| OpenXR | 1.61.1 e successive | Unity OpenXR Plugin, installato da Unity Registry |
| LCC Unity SDK | v2.3.0 e successive | Ottieni dalla pagina di download dell'LCC Unity SDK |
| Business Streaming | v2.2.0 e successive | Ottieni da PICO ufficiale |
Nota:
- 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.
- 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
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
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
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
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
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:
| Piattaforma | Azione |
|---|---|
| Windows | Deseleziona Auto Graphics API for Windows e aggiungi DirectX12, Vulkan e DirectX11 come le tre API grafiche |
| macOS | Deseleziona Auto Graphics API for Mac e mantieni l'API grafica Metal |
| Linux | Deseleziona 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
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
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
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 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
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
Passaggio 10: Avviare lo streaming
- Collega Pico 4 Ultra al computer tramite USB 3.0 o Wi-Fi ad alta velocità.
- Apri Business Streaming sul dispositivo Pico 4 Ultra e collegalo al computer.
- Fai clic sul pulsante Play nell'Editor di Unity per eseguire, oppure apri l'applicazione pubblicata, per avviare lo streaming.
Nota:
- Per l'uso del software Business Streaming, consulta la documentazione ufficiale PICO: https://business.picoxr.com/cn/doc/Business-Streamingv2.
- Per le impostazioni di progetto, consulta la Guida all'ottimizzazione delle impostazioni di progetto.
- 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à.
- 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.