Business Streaming-gids voor Pico 4 Ultra
De Business Streaming van Pico 4 Ultra rendert het Unity-project op de pc en streamt het naar het apparaat om te bekijken en ermee te communiceren via de officiële Business Streaming-tool van PICO, waarmee de rekenkracht van de pc wordt benut om hogere prestaties te bereiken dan met rendering op het apparaat. Deze gids legt uit hoe je de LCC Unity SDK integreert en de streamingontwikkeling met Business Streaming voltooit.
Versievereisten
De software- en plug-inversies die in deze gids worden gebruikt, zijn als volgt. Het wordt aanbevolen om met dezelfde versies te ontwikkelen; andere, niet-geteste versies kunnen compatibiliteitsproblemen hebben:
| Software / plug-in | Versie | Beschrijving |
|---|---|---|
| Unity | v6000.0.69f1 en hoger | Gebruikt Unity 6 |
| OpenXR | 1.61.1 en hoger | Unity OpenXR Plugin, geïnstalleerd vanuit Unity Registry |
| LCC Unity SDK | v2.3.0 en hoger | Verkrijgbaar via de downloadpagina van de LCC Unity SDK |
| Business Streaming | v2.2.0 en hoger | Verkrijgbaar via PICO officieel |
Opmerking:
- Business Streaming maakt verbinding via OpenXR, wat anders is dan de Ontwikkelgids voor Pico 4 Ultra die de PICO Unity Integration SDK gebruikt; haal ze niet door elkaar.
- De Unity-versie, de OpenXR-versie en de LCC SDK-versie hebben allemaal invloed op de rendering en prestaties, dus probeer elke softwareversie consistent te houden met deze gids.
Ontwikkelworkflow
Stap 1: Vereisten
Download en installeer Business Streaming v2.2.0 of hoger op zowel de computer waarvan wordt gestreamd als het Pico 4 Ultra-apparaat; het wordt aanbevolen om de computer na installatie één keer opnieuw op te starten.
Stap 2: Een URP-project aanmaken
Selecteer het type Universal 3D (URP-renderpipeline) in de projectsjabloon, zoals hieronder wordt weergegeven:

Een Universal 3D-project aanmaken
Stap 3: Unity OpenXR importeren
Open het UPM-venster via het Unity-menu Venster → Package Manager, selecteer Unity Registry in de linker lijst, voer OpenXR in het zoekvak in, selecteer OpenXR Plugin in de zoekresultaten en installeer deze, zoals hieronder wordt weergegeven:

Installeer de OpenXR Plugin vanuit Unity Registry
Stap 4: De LCC Unity SDK importeren
Open het UPM-venster via het Unity-menu Venster → Package Manager, klik links op +, selecteer Pakket vanaf schijf installeren in de vervolgkeuzelijst, zoek de LCC Unity SDK en selecteer het package.json-bestand om deze te importeren, zoals hieronder wordt weergegeven:

Importeer de LCC Unity SDK via Pakket vanaf schijf installeren
Opmerking: Start Unity opnieuw op nadat je de bovenstaande stappen hebt voltooid voordat je doorgaat met de volgende instellingen.
Stap 5: De Unity-omgeving instellen
XR Plug-in Management configureren
Selecteer Bestand → Projectinstellingen in de Unity-menubalk, selecteer links XR Plug-in Management, vink Initialize XR on Startup aan onder het tabblad PC, Mac & Linux Standalone Settings en vink OpenXR aan als Plug-in Provider, zoals hieronder wordt weergegeven:

Vink Initialize XR on Startup en OpenXR aan in XR Plug-in Management
Opmerking: Als er na OpenXR een geel waarschuwingspictogram verschijnt, klik dan op Fix All om alles te herstellen.
Selecteer het item OpenXR onder XR Plug-in Management en stel Render Mode indien nodig in op Single Pass Instanced of Multi Pass; over het algemeen biedt Single Pass Instanced betere prestaties en de overige instellingen blijven op hun standaardwaarden, zoals hieronder wordt weergegeven:

Stel de OpenXR Render Mode in op Single Pass Instanced of Multi Pass
Grafische API's configureren
Open het instellingenpaneel via Bewerken → Projectinstellingen → Player, selecteer het item Overige onder het tabblad van het betreffende platform en configureer de grafische API's per platform:
| Platform | Actie |
|---|---|
| Windows | Schakel Auto Graphics API for Windows uit en voeg DirectX12, Vulkan en DirectX11 toe als de drie grafische API's |
| macOS | Schakel Auto Graphics API for Mac uit en behoud de grafische API Metal |
| Linux | Schakel Auto Graphics API for Linux uit en behoud de grafische API Vulkan |
Opmerking: Op het Windows-platform wordt aanbevolen om DirectX12 of Vulkan te gebruiken, die betere prestaties bieden; voor DirectX11 wordt aanbevolen om HDR-rendering in te schakelen om renderingartefacten te voorkomen.
Stap 6: De scène aanmaken
Dit voorbeeld begint vanuit een gloednieuwe Scene. Maak een Unity-scène (Scene) aan, klik met de rechtermuisknop in een leeg gebied van het hiërarchievenster (Hierarchy) en selecteer XR → Convert Main Camera To XR Rig in het pop-upmenu om Main Camera om te zetten naar een XR-camera.
Stap 7: De scène configureren
Selecteer het XR Rig-GameObject in het hiërarchievenster (Hierarchy) en stel in het eigenschappenvenster (Inspector) de Request Tracking Mode van de eigenschap Camera Offset in op Floor, zoals hieronder wordt weergegeven:
Stel de Request Tracking Mode van de XR Rig Camera Offset in op Floor
Selecteer het XR Rig → Camera Offset → Main Camera-GameObject in het hiërarchievenster (Hierarchy) en stel de eigenschappen van de Camera-component in het eigenschappenvenster (Inspector) in: Clipping Planes Near = 0.3, Far = 5000; Anti-aliasing = No Anti-aliasing; Opaque Texture = Off, Depth Texture = Off; Background Type = Solid Color, Background = zwart; HDR Rendering = Off, MSAA = Off, URP Dynamic Resolution = Off, zoals hieronder wordt weergegeven:

Stel de eigenschappen van de Camera-component van de Main Camera onder de XR Rig in
Stap 8: Code schrijven om de scène te laden
Klik met de rechtermuisknop op Create Empty in het hiërarchievenster (Hierarchy) om een leeg object aan te maken, geef het de naam LCCManager, normaliseer de Transform en voeg het LCCManager-script toe via Component toevoegen, zoals hieronder wordt weergegeven:

Maak een leeg LCCManager-object aan en voeg het LCCManager-script toe
Klik met de rechtermuisknop op Create Empty in het hiërarchievenster (Hierarchy) om nog een leeg object aan te maken, geef het de naam LCCRenderer en stel de Transform in op Rotation.x = -90, Scale.x = -1, zoals hieronder wordt weergegeven:

Maak een leeg LCCRenderer-object aan en stel Rotation.x = -90 en Scale.x = -1 in om de coördinatensystemen uit te lijnen
Rotation.x = -90 en Scale.x = -1 vormen de uitlijningstransformatie van het LCC-gegevenscoördinatensysteem (rechtshandig, Z-as omhoog) naar het Unity-coördinatensysteem (linkshandig, Y-as omhoog); zie "Coördinatensysteem van LCC-gegevens" in LCC Unity SDK Introductie.
Schrijf een C#-script met de naam LCCRenderer.cs met de volgende code:
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;
// stel het platformtype in op PCVR
m_manager.SetPlatformType(PlatformType.PCVR);
m_manager.SetMainCamera(m_mainCamera);
m_manager.SetLockFPS(false);
//Stel de volledige render splat in op 15 miljoen, wat betekent dat LCC LOD0 > 15 miljoen het chunk rendering-pad gebruikt.
//m_manager.SetFullRenderSplat(1500);
//Stel de maximale render splat in op 15 miljoen, wat betekent dat de maximale on-screen splat-limiet 15 miljoen is op het chunk rendering-pad.
//m_manager.SetMaxRenderSplats(1500);
m_renderer = m_manager.GetRender(this.transform);
if (m_renderer == null)
Debug.LogError("GetRender mislukt, controleer of de manager correct is ingesteld en of het bestandspad geldig is.");
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback, onError);
}
private void onLoadProgress(float value)
{
Debug.Log($"laadvoortgang: {value}");
}
private void onLoadCallback()
{
//stel de start-LOD in op 2, wat betekent dat de initiële rendering op LOD2-niveau plaatsvindt.
//m_manager.SetStartLod(2);
Debug.Log("gegevens geladen !!!");
m_isLoaded = true;
}
private void onError(string error)
{
Debug.LogError($"laadfout: {error}");
}
}
Voeg het script toe aan het LCCRenderer-GameObject in het hiërarchievenster (Hierarchy), sleep vervolgens het LCCManager-GameObject naar de eigenschap Manager van het script in het eigenschappenvenster (Inspector) en vul ten slotte het LCC-bestandspad in.
Na het voltooien van de bovenstaande configuratie is de scènestructuur in het hiërarchievenster (Hierarchy) zoals hieronder wordt weergegeven:

De scènestructuur na configuratie
Opmerking: De scène moet de Directional Light, Global Volume en andere objecten behouden die standaard in het URP-project zijn aangemaakt.
Stap 9: Business Streaming instellen
Start Business Streaming op de computer, selecteer Settings → General en stel Default Streaming Type in op OpenXR Streaming, zoals hieronder wordt weergegeven:

Stel de Default Streaming Type van Business Streaming in op OpenXR Streaming
Stap 10: Het streamen starten
- Verbind de Pico 4 Ultra met de computer via USB 3.0 of snelle wifi.
- Open Business Streaming op het Pico 4 Ultra-apparaat en maak verbinding met de computer.
- Klik op de knop Play in de Unity Editor om uit te voeren, of open de gepubliceerde applicatie, om het streamen te starten.
Opmerking:
- Raadpleeg voor het gebruik van de Business Streaming-software de officiële PICO-documentatie: https://business.picoxr.com/cn/doc/Business-Streamingv2.
- Raadpleeg voor projectinstellingen de Optimalisatiegids voor projectinstellingen.
- Streaming vereist high-end pc-hardware (met name de grafische kaart); gebruik een krachtige computer voor streaming en gebruik USB 3.0 of snelle wifi.
- PCVR-streaming rendert twee keer (de SPI-modus heeft ook dubbele vertex-overhead), dus de prestaties en framerate kunnen worden verbeterd door volledige/chunked rendering, het maximale aantal on-screen renders, het start-LOD-niveau enz. te configureren; raadpleeg voor parameterinstellingen de Gids voor instellingen van renderprestatieparameters.
Gerelateerde verwijzing
- Zie voor projectinstellingen en prestatieoptimalisatie de hoofdstukken Optimalisatiegids voor projectinstellingen en Gids voor instellingen van renderprestatieparameters.
- Zie de Ontwikkelgids voor Pico 4 Ultra voor de renderingworkflow op het apparaat met de PICO Unity Integration SDK.
- Raadpleeg voor andere gebruiksinstructies voor Business Streaming de officiële PICO-documentatie: Business Streaming.