Pico 4 Ultra-Business-Streaming-Anleitung
Das Business Streaming von Pico 4 Ultra rendert das Unity-Projekt auf dem PC und streamt es über das offizielle Business-Streaming-Tool von PICO zum Durchsuchen und Bedienen auf das Gerät, wodurch die Rechenleistung des PCs genutzt wird, um eine höhere Leistung als beim On-Device-Rendering zu erzielen. Diese Anleitung erläutert, wie das LCC Unity SDK integriert und die Streaming-Entwicklung mit Business Streaming abgeschlossen wird.
Versionsanforderungen
Die in dieser Anleitung verwendeten Software- und Plugin-Versionen sind nachfolgend aufgeführt. Es wird empfohlen, mit denselben Versionen zu entwickeln; andere, nicht getestete Versionen können Kompatibilitätsprobleme aufweisen:
| Software / Plugin | Version | Beschreibung |
|---|---|---|
| Unity | v6000.0.69f1 und neuer | Verwendet Unity 6 |
| OpenXR | 1.61.1 und neuer | Unity OpenXR Plugin, installiert aus der Unity-Registry |
| LCC Unity SDK | v2.3.0 und neuer | Bezogen von der Download-Seite des LCC Unity SDK |
| Business Streaming | v2.2.0 und neuer | Bezogen von PICO offiziell |
Hinweis:
- Business Streaming verbindet sich über OpenXR, was sich von der Pico 4 Ultra-Entwicklungsanleitung unterscheidet, die das PICO Unity Integration SDK verwendet; verwechseln Sie die beiden nicht.
- Unity-Version, OpenXR-Version und LCC SDK-Version beeinflussen alle das Rendering und die Leistung; halten Sie daher jede Softwareversion mit dieser Anleitung konsistent.
Entwicklungsworkflow
Schritt 1: Voraussetzungen
Laden Sie Business Streaming v2.2.0 oder neuer sowohl auf dem Computer, von dem gestreamt wird, als auch auf dem Gerät Pico 4 Ultra herunter und installieren Sie es; es wird empfohlen, den Computer nach der Installation einmal neu zu starten.
Schritt 2: Ein URP-Projekt erstellen
Wählen Sie in der Projektvorlage den Typ Universal 3D (URP-Render-Pipeline), wie unten dargestellt:

Ein Universal-3D-Projekt erstellen
Schritt 3: Unity OpenXR importieren
Öffnen Sie das UPM-Fenster über das Unity-Menü Fenster → Paket-Manager, wählen Sie in der linken Liste Unity-Registry, geben Sie OpenXR in das Suchfeld ein, wählen Sie aus den Suchergebnissen OpenXR Plugin und installieren Sie es, wie unten dargestellt:

Das OpenXR Plugin aus der Unity-Registry installieren
Schritt 4: Das LCC Unity SDK importieren
Öffnen Sie das UPM-Fenster über das Unity-Menü Fenster → Paket-Manager, klicken Sie links auf +, wählen Sie im Dropdown-Menü Paket von Datenträger installieren, suchen Sie das LCC Unity SDK und wählen Sie die Datei package.json zum Import, wie unten dargestellt:

Das LCC Unity SDK über „Paket von Datenträger installieren“ importieren
Hinweis: Starten Sie Unity nach Abschluss der obigen Schritte neu, bevor Sie mit den nachfolgenden Einstellungen fortfahren.
Schritt 5: Die Unity-Umgebung einrichten
XR-Plug-in-Verwaltung konfigurieren
Wählen Sie in der Unity-Menüleiste Datei → Projekteinstellungen, wählen Sie links XR-Plug-in-Verwaltung, aktivieren Sie im Tab PC-, Mac- & Linux-Standalone-Einstellungen die Option XR beim Start initialisieren und aktivieren Sie OpenXR als Plugin-Anbieter, wie unten dargestellt:

In der XR-Plug-in-Verwaltung „XR beim Start initialisieren“ und OpenXR aktivieren
Hinweis: Wenn nach OpenXR ein gelbes Warnsymbol erscheint, klicken Sie auf Alle korrigieren, um alles zu beheben.
Wählen Sie unter XR-Plug-in-Verwaltung den Eintrag OpenXR und setzen Sie den Render-Modus nach Bedarf auf Single Pass Instanced oder Multi Pass; im Allgemeinen bietet Single Pass Instanced eine bessere Leistung, und die übrigen Einstellungen bleiben auf ihren Standardwerten, wie unten dargestellt:

Den OpenXR-Render-Modus auf Single Pass Instanced oder Multi Pass setzen
Grafik-APIs konfigurieren
Öffnen Sie das Einstellungsfenster über Bearbeiten → Projekteinstellungen → Player, wählen Sie im Tab der jeweiligen Plattform den Eintrag Weitere Einstellungen und konfigurieren Sie die Grafik-APIs pro Plattform:
| Plattform | Aktion |
|---|---|
| Windows | Automatische Grafik-API für Windows deaktivieren und DirectX12, Vulkan und DirectX11 als die drei Grafik-APIs hinzufügen |
| macOS | Automatische Grafik-API für Mac deaktivieren und die Metal-Grafik-API beibehalten |
| Linux | Automatische Grafik-API für Linux deaktivieren und die Vulkan-Grafik-API beibehalten |
Hinweis: Auf der Windows-Plattform wird empfohlen, DirectX12 oder Vulkan zu verwenden, da diese eine bessere Leistung bieten; für DirectX11 wird empfohlen, das HDR-Rendering zu aktivieren, um Rendering-Artefakte zu vermeiden.
Schritt 6: Die Szene erstellen
Dieses Beispiel beginnt mit einer brandneuen Szene. Erstellen Sie eine Unity-Szene (Szene), klicken Sie mit der rechten Maustaste in einen leeren Bereich des Hierarchiefensters (Hierarchie) und wählen Sie im Popup-Menü XR → Convert Main Camera To XR Rig, um die Hauptkamera in eine XR-Kamera umzuwandeln.
Schritt 7: Die Szene konfigurieren
Wählen Sie das GameObject XR Rig im Hierarchiefenster (Hierarchie) aus und setzen Sie im Eigenschaftenfenster (Inspektor) den Request Tracking Mode der Eigenschaft Camera Offset auf Boden, wie unten dargestellt:
Den Request Tracking Mode von Camera Offset des XR Rig auf Boden setzen
Wählen Sie das GameObject XR Rig → Camera Offset → Hauptkamera im Hierarchiefenster (Hierarchie) aus und legen Sie die Eigenschaften der Komponente Camera im Eigenschaftenfenster (Inspektor) fest: Clipping-Ebenen Nah = 0,3, Fern = 5000; Kantenglättung = Keine Kantenglättung; Opake Textur = Aus, Tiefentextur = Aus; Hintergrundtyp = Einfarbig, Hintergrund = Schwarz; HDR-Rendering = Aus, MSAA = Aus, URP Dynamische Auflösung = Aus, wie unten dargestellt:

Die Eigenschaften der Camera-Komponente der Hauptkamera unter XR Rig festlegen
Schritt 8: Code zum Laden der Szene schreiben
Klicken Sie im Hierarchiefenster (Hierarchie) mit der rechten Maustaste auf Leeres GameObject erstellen, um ein leeres Objekt zu erstellen, benennen Sie es LCCManager, normalisieren Sie dessen Transform und hängen Sie das Skript LCCManager über Komponente hinzufügen an, wie unten dargestellt:

Ein leeres Objekt LCCManager erstellen und das Skript LCCManager anhängen
Klicken Sie im Hierarchiefenster (Hierarchie) mit der rechten Maustaste auf Leeres GameObject erstellen, um ein weiteres leeres Objekt zu erstellen, benennen Sie es LCCRenderer und setzen Sie dessen Transform Rotation.x = -90, Scale.x = -1, wie unten dargestellt:

Ein leeres Objekt LCCRenderer erstellen und Rotation.x = -90 sowie Scale.x = -1 festlegen, um die Koordinatensysteme auszurichten
Rotation.x = -90 und Scale.x = -1 sind die Ausrichtungstransformation vom LCC-Daten-Koordinatensystem (Z-up, rechtshändig) zum Unity-Koordinatensystem (Y-up, linkshändig); siehe „LCC-Daten-Koordinatensystem“ in Einführung in das Unity SDK.
Schreiben Sie ein C#-Skript namens LCCRenderer.cs mit folgendem 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;
// Plattformtyp auf PCVR setzen
m_manager.SetPlatformType(PlatformType.PCVR);
m_manager.SetMainCamera(m_mainCamera);
m_manager.SetLockFPS(false);
//Das Splat des vollständigen Renderings auf 15 Millionen setzen; das bedeutet, dass LCC LOD0 > 15 Millionen den chunk-basierten Rendering-Pfad nutzt.
//m_manager.SetFullRenderSplat(1500);
//Das maximale Rendering-Splat auf 15 Millionen setzen; das bedeutet, dass die maximale On-Screen-Splat-Grenze im chunk-basierten Rendering-Pfad auf 15 Millionen begrenzt wird.
//m_manager.SetMaxRenderSplats(1500);
m_renderer = m_manager.GetRender(this.transform);
if (m_renderer == null)
Debug.LogError("GetRender fehlgeschlagen; prüfen Sie, ob der Manager korrekt gesetzt und der Dateipfad gültig ist.");
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback, onError);
}
private void onLoadProgress(float value)
{
Debug.Log($"Ladefortschritt: {value}");
}
private void onLoadCallback()
{
//Das Start-LOD auf 2 setzen; das bedeutet, dass das anfängliche Rendering auf LOD2-Niveau erfolgt.
//m_manager.SetStartLod(2);
Debug.Log("Daten geladen !!!");
m_isLoaded = true;
}
private void onError(string error)
{
Debug.LogError($"Ladefehler: {error}");
}
}
Hängen Sie das Skript im Hierarchiefenster (Hierarchie) an das GameObject LCCRenderer an, ziehen Sie anschließend im Eigenschaftenfenster (Inspektor) das GameObject LCCManager auf die Eigenschaft Manager des Skripts und tragen Sie abschließend den LCC-Dateipfad ein.
Nach Abschluss der obigen Konfiguration ist die Szenenstruktur im Hierarchiefenster (Hierarchie) wie unten dargestellt:

Die Szenenstruktur nach der Konfiguration
Hinweis: Die Szene muss das Richtungslicht, Global Volume und weitere standardmäßig im URP-Projekt erstellte Objekte behalten.
Schritt 9: Business Streaming einrichten
Starten Sie Business Streaming auf dem Computer, wählen Sie Einstellungen → Allgemein und setzen Sie Standard-Streaming-Typ auf OpenXR-Streaming, wie unten dargestellt:

Den Standard-Streaming-Typ von Business Streaming auf OpenXR-Streaming setzen
Schritt 10: Das Streaming starten
- Verbinden Sie das Gerät Pico 4 Ultra über USB 3.0 oder Hochgeschwindigkeits-WLAN mit dem Computer.
- Öffnen Sie Business Streaming auf dem Gerät Pico 4 Ultra und verbinden Sie es mit dem Computer.
- Klicken Sie im Unity-Editor auf die Schaltfläche Play, um auszuführen, oder öffnen Sie die veröffentlichte Anwendung, um das Streaming zu starten.
Hinweis:
- Zur Verwendung der Business-Streaming-Software siehe die offizielle PICO-Dokumentation: https://business.picoxr.com/cn/doc/Business-Streamingv2.
- Zu den Projekteinstellungen siehe Leitfaden zur Optimierung der Projekteinstellungen.
- Streaming erfordert hochwertige PC-Hardware (insbesondere die Grafikkarte); verwenden Sie einen leistungsstarken Computer für das Streaming und nutzen Sie USB 3.0 oder Hochgeschwindigkeits-WLAN.
- PCVR-Streaming rendert zweimal (der SPI-Modus hat ebenfalls verdoppelten Vertex-Overhead), daher lassen sich Leistung und Bildrate durch das Konfigurieren von vollständigem/chunk-basiertem Rendering, der maximalen On-Screen-Rendermenge, dem Start-LOD-Niveau usw. verbessern; zu den Parametereinstellungen siehe den Leitfaden zu den Rendering-Leistungsparametern.
Weiterführende Referenz
- Zur Projekteinrichtung und Leistungsoptimierung siehe die Kapitel Leitfaden zur Optimierung der Projekteinstellungen und Leitfaden zu den Rendering-Leistungsparametern.
- Zum On-Device-Rendering-Workflow mit dem PICO Unity Integration SDK siehe die Pico 4 Ultra-Entwicklungsanleitung.
- Zu weiteren Verwendungshinweisen von Business Streaming siehe die offizielle PICO-Dokumentation: Business Streaming.