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

    • PortalCam P1

      • Produktübersicht
      • Grundlegende Bedienung
      • LCC Scan App verwenden
      • Wartung und Pflege
      • FAQ
  • Lixel K-Serie

    • Lixel K1

      • Produktübersicht
      • Grundlegende Bedienung
      • Geräteaktivierung und -verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Kartenfusion
      • Empfehlungen zur Routenplanung für typische Szenen
      • Hinweise
      • FAQ
    • Lixel K2

      • Produktübersicht
      • Grundlegende Bedienung
      • Aktivierung und Verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Kartenfusion
      • Empfehlungen zur Routenplanung für typische Szenen
      • Hinweise
      • FAQ
  • Lixel L-Serie

    • Lixel L2 Pro

      • Produktübersicht
      • Grundlegende Bedienung
      • Geräteaktivierung und -verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Messpunkt
      • Anhang
      • FAQ
    • Lixel L3

      • Produktübersicht
      • Grundlegende Bedienung
      • Aktivierung und Verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Anhang
  • Lixel Studio

    • Version und Copyright
    • Installation und Aktivierung
    • Softwareoberfläche
    • Dateioperationen
    • Projektverarbeitung
    • Werkzeuge
    • 2D-Zeichnung
    • Anwendungen
    • Einstellungen
    • Geräteverbindung
    • Häufige Fragen
  • Lixel CyberColor

    • LCC Studio

      • Erste Schritte
      • Version und Updates
      • Download und Installation
      • Oberfläche und Navigation
      • Vor der Rekonstruktion
      • Modellrekonstruktion
      • Einzelmodell-Rekonstruktion
      • Kartenfusion
      • Boden-Luft-Fusion
      • Luftbild-Rekonstruktion
      • Meine Modelle
      • Weitere Funktionen
      • Einstellungen und Konto
      • Converter
      • Videorekonstruktion
      • Häufige Fragen / FAQ
    • LCC Scene Editor

      • Version und Updates
      • Konto und Anmeldung
      • Produktübersicht und Startseite
      • Editor-Oberfläche
      • Navigationsmodi
      • Datei
      • Einstellungen
      • Bearbeiten
      • Fenster
      • Globale Symbolleiste
      • Assets und Eigenschaften
      • Linke Symbolleiste
      • Ansichtspunkte
      • Portal
      • Skybox
      • Markierungen
      • Messung
      • Flythrough
      • Szenenbericht
      • 3D-Layout
      • Minikarte
      • Vorschaumodus (Viewer)
      • Hilfe
      • Häufige Fragen (FAQ)
      • Spawn-Point
    • LCC Model Editor

      • Version und Updates
      • Benutzerhandbuch
      • Übersicht und Oberfläche
      • Dateioperationen
      • Selektoren
      • Modelle bearbeiten
      • Messung
      • Farbkorrektur
      • Asset-Verwaltung
      • Einstellungen und Hilfe
      • Häufige Fragen
    • Capture Guide

      • Überblick
      • Überblick über die Aufnahmegeräte
      • Allgemeine Aufnahmeprinzipien
      • Aufnahme von Innenszenen
      • Aufnahme von Außenszenen
      • Großflächige Aufnahme (Map Fusion)
      • Aerial-Ground Map Fusion – Aufnahme
      • Objektaufnahme
      • Personenaufnahme
      • Video-Rekonstruktionsaufnahme
      • HD Enhancement
      • Kontrollpunkte (Lixel P1)
      • FAQ und Fehlerbehebung
    • Best Practices

      • Zusammenführen mehrerer großer 3DGS-Modelle
    • Versionsgeschichte
  • Plugin & SDK

    • Unreal

      • Einführung
      • Schnellstart - Windows
      • Schnellstart - Linux
      • Schnellstart - Quest3
      • Editionen und Lizenzierung
      • Rendering
      • Tiled-Rasterisierung (experimentell)
      • Bildeinstellungen
      • Normalen und Beleuchtung
      • Szenenbearbeitung
      • Leistungsparameter
      • Leitfaden zur Leistung
      • Integration von Drittanbieter- und Engine-Plugins
      • Proxy Mesh
      • Ladeanimation
      • Kollision
      • Unterstützung des Navigation System
      • Unterstützung von Single Layer Water
      • Lokalisierung
      • FAQ
      • Fehlerbehebung
      • Logs und Diagnose
      • Kontakt
      • Bewährte Vorgehensweisen

        • 3DGS mit einem LixelStudio-Mesh neu beleuchten
      • API-Referenz

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG- / SPZ- / PLY-Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Änderungsprotokoll

        • 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

      • Einführung in das Unity SDK
      • Technische Funktionen
      • Anforderungen an die Entwicklungsumgebung
      • PC-Schnellstartanleitung
      • Leitfaden zur Optimierung der Projekteinstellungen
      • Pico 4 Ultra-Entwicklungsanleitung
      • Pico 4 Ultra-PC-Streaming-Anleitung
      • Quest 3-Entwicklungsanleitung
      • Quest 3-PC-Streaming-Anleitung
      • OpenXR-Entwicklungsanleitung
      • Pico 4 Ultra-Business-Streaming-Anleitung
      • Glossar
      • FAQ
      • Kontakt
      • Funktionsentwicklungsleitfaden

        • Entwicklungsanleitung für gemischtes Multi-Szenen-Rendering
        • Entwicklungsanleitung für Schattenempfang
        • Entwicklungsanleitung für Echtzeitbeleuchtung
        • Entwicklungsanleitung für Multi-Kamera-Rendering
        • Entwicklungsanleitung für hochauflösendes Bild-Rendering
        • Entwicklungsanleitung zur Kompatibilität der Datenformate LCC und LCC2
        • Entwicklungsanleitung für Ladeeffekte
        • Entwicklungsanleitung für das Umschalten des Mip-Rendering-Modus
        • Entwicklungsanleitung für Kanten- und Eckensnapping
        • Entwicklungsanleitung für projizierte Decals
        • Entwicklungsanleitung für projizierte Video-Decals
        • Entwicklungsanleitung für Hervorhebung
        • Entwicklungsanleitung für Echtzeit-Clipping
        • Entwicklungsanleitung für Farbanpassung
        • Entwicklungsanleitung für das Abrufen von Szenen-Mesh-Daten
        • Entwicklungsanleitung für den Editor-Modus
        • Konfigurationsanleitung für Render-Leistungsparameter
        • Entwicklungsanleitung zum gemeinsamen Paketieren von Anwendung und Daten
        • Entwicklungsanleitung für das Kollisionssystem
        • Anleitung zu macOS-Berechtigungsproblemen in der Entwicklung
        • Entwicklungsanleitung für Kompilierung und Paketierung auf iOS-Geräten
      • API-Referenz

        • LCCManager
        • Renderer
        • Datentypen
      • Changelog

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

      • Einführung
      • Leitfaden zur Rendering-Leistungsoptimierung
      • Grafikkonfiguration
      • Häufige Fragen
      • API-Referenz

        • 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
      • Änderungsprotokoll

        • 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

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 / PluginVersionBeschreibung
Unityv6000.0.69f1 und neuerVerwendet Unity 6
OpenXR1.61.1 und neuerUnity OpenXR Plugin, installiert aus der Unity-Registry
LCC Unity SDKv2.3.0 und neuerBezogen von der Download-Seite des LCC Unity SDK
Business Streamingv2.2.0 und neuerBezogen von PICO offiziell

Hinweis:

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

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

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

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

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

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:

PlattformAktion
WindowsAutomatische Grafik-API für Windows deaktivieren und DirectX12, Vulkan und DirectX11 als die drei Grafik-APIs hinzufügen
macOSAutomatische Grafik-API für Mac deaktivieren und die Metal-Grafik-API beibehalten
LinuxAutomatische 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

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

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

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 die Transform für die Koordinatensystem-Ausrichtung festlegen

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

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

Den Standard-Streaming-Typ von Business Streaming auf OpenXR-Streaming setzen

Schritt 10: Das Streaming starten

  1. Verbinden Sie das Gerät Pico 4 Ultra über USB 3.0 oder Hochgeschwindigkeits-WLAN mit dem Computer.
  2. Öffnen Sie Business Streaming auf dem Gerät Pico 4 Ultra und verbinden Sie es mit dem Computer.
  3. 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:

  1. Zur Verwendung der Business-Streaming-Software siehe die offizielle PICO-Dokumentation: https://business.picoxr.com/cn/doc/Business-Streamingv2.
  2. Zu den Projekteinstellungen siehe Leitfaden zur Optimierung der Projekteinstellungen.
  3. 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.
  4. 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.