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

    • PortalCam P1

      • Productoverzicht
      • Basisbediening
      • De LCC Scan App gebruiken
      • Onderhoud en verzorging
      • Veelgestelde vragen
  • Lixel K-serie

    • Lixel K1

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
    • Lixel K2

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
  • Lixel L-serie

    • Lixel L2 Pro

      • Productoverzicht
      • Basisbediening
      • Apparaatactivering en -verbinding
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten opnemen
      • Meetpunt
      • Appendix
      • FAQ
    • Lixel L3

      • Productoverzicht
      • Basisfuncties van het apparaat
      • Apparaatactivering en -verbinding
      • Gegevensopname
      • Absolute coördinaten opnemen
      • Appendix
  • Lixel Studio

    • Versie en copyright
    • Installatie en activering
    • Software-interface
    • Bestandsbewerkingen
    • Projectverwerking
    • Gereedschappen
    • 2D-tekenen
    • Toepassingen
    • Instellingen
    • Apparaatverbinding
  • 07-plugin-sdk

    • Unity

      • LCC Unity SDK Introductie
      • Technische functies
      • Vereisten voor de ontwikkelomgeving
      • Snelstartgids voor pc
      • Optimalisatiegids voor projectinstellingen
      • Ontwikkelgids voor Pico 4 Ultra
      • Pc-streaminggids voor Pico 4 Ultra
      • Ontwikkelgids voor Quest 3
      • Pc-streaminggids voor Quest 3
      • Ontwikkelgids voor OpenXR
      • Business Streaming-gids voor Pico 4 Ultra
      • Woordenlijst
      • Veelgestelde vragen
      • Contact opnemen
      • Ontwikkelingshandleiding voor functies

        • Ontwikkelgids voor gemengde rendering van meerdere scènes
        • Ontwikkelgids voor het ontvangen van schaduwen
        • Ontwikkelgids voor realtime belichting
        • Ontwikkelgids voor multi-camera rendering
        • Ontwikkelgids voor het renderen van afbeeldingen met hoge resolutie
        • Ontwikkelgids voor compatibiliteit van de gegevensformaten LCC en LCC2
        • Ontwikkelgids voor laadeffecten
        • Ontwikkelgids voor het schakelen tussen Mip-renderingmodi
        • Ontwikkelgids voor rand- en hoeksnapping
        • Ontwikkelgids voor geprojecteerde decal
        • Ontwikkelgids voor video-geprojecteerde decal
        • Ontwikkelgids voor markeren
        • Ontwikkelgids voor realtime knippen
        • Ontwikkelgids voor kleuraanpassing
        • Ontwikkelgids voor het ophalen van scène-Meshgegevens
        • Ontwikkelgids voor de Editor-modus
        • Configuratiegids voor renderprestatieparameters
        • Ontwikkelgids voor het samen verpakken van de applicatie en de gegevens
        • Ontwikkelgids voor het botsingssysteem
        • Gids voor macOS-ontwikkelingsmachtigingsproblemen
        • Ontwikkelgids voor compilatie en verpakking voor iOS-apparaten
      • API-referentie

        • LCCManager
        • Renderer
        • Gegevenstypen
      • Wijzigingslogboek

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

Ontwikkelgids voor Pico 4 Ultra

De LCC-ontwikkelworkflow voor Pico 4 Ultra is in wezen hetzelfde als de officiële workflow voor het aanmaken van VR-projecten van PICO; zie de documentatie van de PICO Unity Integration SDK. Deze gids bouwt daarop voort om uit te leggen hoe je de LCC Unity SDK integreert voor het renderen van 3DGS-scènes.

Versievereisten

De software- en pakketversies die in deze gids worden gebruikt, worden hieronder vermeld. Het wordt aanbevolen om met dezelfde versies te ontwikkelen; andere, niet-geteste versies kunnen compatibiliteitsproblemen hebben:

Software / pakketVersieBeschrijving
Unityv2022.3.62f3Gebruikt Unity 2022 LTS
PICO Unity Integration SDKv3.4.0Verkregen via het officiële kanaal van PICO
LCC Unity SDKv2.1.27 en laterDe versie die Built-in ondersteunt; download de compatibele versie voor Unity 2022 LTS

Zie Vereisten voor de ontwikkelomgeving voor meer gedetailleerde hardware- en softwarevereisten.

Opmerking:

  1. Omdat de PICO Unity Integration SDK ernstige prestatieproblemen heeft op de URP-pipeline, wordt de Built-in-renderpipeline aanbevolen; zie de bekende problemen.
  2. Als je test met Unity v6000.0.69f1 en merkt dat de app vastloopt of crasht, schakel dan over naar Unity v2022.3 LTS: apparaten uit de PICO 4-serie hebben compatibiliteitsproblemen met apps die Unity 6 en Vulkan samen gebruiken; zie de bekende problemen.
  3. De Unity-versie, de PICO SDK-versie en de LCC SDK-versie hebben allemaal invloed op de rendering en prestaties; probeer elke softwareversie consistent te houden met deze gids.

Ontwikkelworkflow

Stap 1: Het project aanmaken

Selecteer in de projectsjabloon het type 3D (Built-in Render Pipeline). Omdat de PICO Unity Integration SDK ernstige prestatieproblemen heeft op de URP-pipeline, selecteer je de URP-pipeline niet, zoals hieronder wordt weergegeven:

Een 3D-project (Built-in Render Pipeline) aanmaken

Een 3D-project (Built-in Render Pipeline) aanmaken

Stap 2: Het platform wijzigen

Selecteer in het Unity-menu Bestand → Build Profiles om het buildvenster te openen en wijzig het platform naar Android, zoals hieronder wordt weergegeven:

Wijzig het platform naar Android in Build Profiles

Wijzig het platform naar Android in Build Profiles

Stap 3: De PICO Unity Integration SDK importeren

Download de PICO Unity Integration SDK van de officiële website van PICO en installeer deze volgens de PICO-zelfstudie; je kunt de SDK ook rechtstreeks importeren vanaf GitHub via https://github.com/Pico-Developer/PICO-Unity-Integration-SDK.git. Deze gids gebruikt versie v3.4.0, zoals hieronder wordt weergegeven:

PICO Unity Integration SDK v3.4.0 importeren

PICO Unity Integration SDK v3.4.0 importeren

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, navigeer naar de LCC Unity SDK en selecteer het package.json-bestand om te importeren, zoals hieronder wordt weergegeven:

Importeer de LCC Unity SDK via Pakket vanaf schijf installeren

Importeer de LCC Unity SDK via Pakket vanaf schijf installeren

Stap 5: De Unity-omgeving configureren

XR Plug-in Management configureren

Selecteer in de Unity-menubalk Bestand → Projectinstellingen, selecteer links XR Plug-in Management en vink Initialize XR on Startup aan onder het tabblad van het Android-platform, zoals hieronder wordt weergegeven:

Vink Initialize XR on Startup aan in XR Plug-in Management

Vink Initialize XR on Startup aan in XR Plug-in Management

Selecteer het item PICO onder XR Plug-in Management en stel de Render Mode van het Android-platform in op MultiView, zoals hieronder wordt weergegeven:

Stel de PICO Render Mode in op MultiView

Stel de PICO Render Mode in op MultiView

Selecteer het item Project Validation onder XR Plug-in Management en klik op Fix All om de benodigde instellingen te voltooien (dit kan ook worden overgeslagen en later handmatig worden aangemaakt), zoals hieronder wordt weergegeven:

Klik op Fix All in Project Validation

Klik op Fix All in Project Validation

Opmerking:

  • Door op Fix All te klikken, worden de benodigde GameObjects in de momenteel geopende scène aangemaakt, dus je moet de Main Camera en Directional Light in de scène verwijderen.
  • Dit voorbeeld herstelt alleen UIOrientation.LandscapeLeft; al het andere wordt handmatig aangemaakt.

De Keystore configureren

Voor PICO-ontwikkeling is een Keystore vereist. Ga naar Player → Android-tabblad → Publishing Settings → Keystore Manager, maak een nieuwe Keystore aan en voltooi de instellingen, zoals hieronder wordt weergegeven:

Maak een nieuwe Keystore aan in Keystore Manager

Maak een nieuwe Keystore aan in Keystore Manager

De bedrijfsnaam en productnaam instellen

PICO-ontwikkeling staat de standaard defaultCompany niet toe. Stel op het tabblad Player de juiste Company Name en Product Name in, zoals hieronder wordt weergegeven:

Stel de Company Name en Product Name in

Stel de Company Name en Product Name in

Kwaliteitsopties configureren

Selecteer in Projectinstellingen het tabblad Kwaliteit en stel Anti Aliasing = Disabled, Resolution Scaling Fixed DPI Factor = 0.7 en VSync Count = Don't Sync in, zoals hieronder wordt weergegeven:

Schakel anti-aliasing uit en stel de DPI Factor en VSync in op het tabblad Kwaliteit

Schakel anti-aliasing uit en stel de DPI Factor en VSync in op het tabblad Kwaliteit

De AppID invullen

Selecteer in het Unity-menu PICO → Platform → Platform Setting om het instellingenpaneel te openen en voer de AppID die je op het PICO-ontwikkelaarsplatform hebt aangevraagd in bij Paste your App ID here; zie Een ontwikkelaarsaccount, organisatie en app aanmaken.

Voer de AppID in bij PICO Platform Setting

Voer de AppID in bij PICO Platform Setting

Grafisch configureren

Selecteer in Projectinstellingen het tabblad Grafisch, selecteer het Android-platform en configureer zoals hieronder wordt weergegeven:

Configureer het Android-platform op het tabblad Grafisch

Configureer het Android-platform op het tabblad Grafisch

Player configureren

Selecteer in Projectinstellingen het tabblad Player, selecteer het Android-platform, stel Color Space = Gamma in, schakel Auto Graphics API uit en behoud alleen Vulkan, met de overige instellingen zoals hieronder wordt weergegeven:

Stel Color Space in op Gamma en behoud alleen Vulkan voor de grafische API

Stel Color Space in op Gamma en behoud alleen Vulkan voor de grafische API

Scroll omlaag in het huidige tabblad en stel Minimum API Level = Android 10.0, Scripting Backend = IL2CPP, API Compatibility Level = .NET Standard 2.1 en Target Architectures = ARM64 in, met de overige instellingen zoals hieronder wordt weergegeven:

Stel Minimum API Level, Scripting Backend, API Compatibility Level en Target Architectures in

Stel Minimum API Level, Scripting Backend, API Compatibility Level en Target Architectures in

Blijf omlaag scrollen in het huidige tabblad en stel Active Input Handling = Input System Package (New) in, met de overige instellingen zoals hieronder wordt weergegeven:

Stel Active Input Handling in op Input System Package (New)

Stel Active Input Handling in op Input System Package (New)

Stap 6: De scène aanmaken

Maak een geheel nieuwe scène aan in Unity en verwijder de Main Camera en Directional Light. Klik met de rechtermuisknop in een leeg gebied van het Hiërarchie-venster en selecteer XR → XR Origin (VR) in het pop-upmenu om de benodigde XR-objecten aan te maken.

Selecteer het object XR Origin (VR) en voeg de component PXR_Manager toe via Component toevoegen in het Inspector-venster, en configureer de bijbehorende eigenschappen zoals hieronder wordt weergegeven:

Voeg de PXR_Manager-component toe op XR Origin (VR) en configureer deze

Voeg de PXR_Manager-component toe op XR Origin (VR) en configureer deze

Selecteer het object XR Origin (VR) en stel in de XR Origin-component van het Inspector-venster Tracking Origin Mode in op Floor, met de overige eigenschappen zoals hieronder wordt weergegeven:

Stel Tracking Origin Mode van de XR Origin-component in op Floor

Stel Tracking Origin Mode van de XR Origin-component in op Floor

Selecteer de Main Camera (het kind op het tweede niveau van XR Origin (VR)) en stel de bijbehorende eigenschappen van de Camera-component in het Inspector-venster in, zoals hieronder wordt weergegeven:

Stel de eigenschappen van de Camera-component van de Main Camera onder XR Origin (VR) in

Stel de eigenschappen van de Camera-component van de Main Camera onder XR Origin (VR) in

Klik in het Hiërarchie-venster met de rechtermuisknop op Create Empty om een leeg object met de naam LCCManager aan te maken, normaliseer de Transform en voeg het LCCManager-script toe via Component toevoegen, zoals hieronder wordt weergegeven:

Maak het lege LCCManager-object aan en voeg het LCCManager-script toe

Maak het lege LCCManager-object aan en voeg het LCCManager-script toe

Klik in het Hiërarchie-venster met de rechtermuisknop op Create Empty om nog een leeg object met de naam LCCRenderer aan te maken en stel de Transform in met Rotation.x = -90 en Scale.x = -1, zoals hieronder wordt weergegeven:

Maak het lege LCCRenderer-object aan en stel de Transform in op uitlijning met het coördinatensysteem

Maak het lege LCCRenderer-object aan en stel Rotation.x = -90, Scale.x = -1 in om het coördinatensysteem uit te lijnen

Rotation.x = -90 en Scale.x = -1 vormen de uitlijningstransformatie van het LCC-gegevenscoördinatensysteem (rechtshandig met Z-as omhoog) naar het Unity-coördinatensysteem (linkshandig met 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;
using UnityEngine.XR;

public class LCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;

    private LCCCore.Renderer m_renderer;

    private void Awake()
    {
        XRSettings.eyeTextureResolutionScale = 0.8f; // Verlaag de textuurresolutie om de prestaties te verbeteren
    }

    void Start()
    {
#if UNITY_EDITOR
        m_manager.SetPlatformType(PlatformType.PC);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load(m_FilePath, onProgress, onLoaded);
#else
        m_manager.SetPlatformType(PlatformType.Pico);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load($"{Application.persistentDataPath}/LccData/meta.lcc2", onProgress, onLoaded);
#endif
    }

    private void onProgress(float v)
    {
        Debug.Log("voortgang:" + v);
    }

    private void onLoaded()
    {
        m_manager.SetStartLod(2);
        m_renderer.SetEnvironment(false);
        Debug.Log("Gegevens geladen");
    }
}

Voeg dit script toe aan het LCCRenderer-GameObject in het Hiërarchie-venster, sleep vervolgens het LCCManager-GameObject naar de eigenschap Manager van het script in het Inspector-venster en vul ten slotte het pad van het LCC-bestand in.

Voeg het LCCRenderer-script toe en bind Manager en het bestandspad

Voeg het LCCRenderer-script toe en bind Manager en het bestandspad

Om het debuggen in de Unity Editor en het rechtstreeks inpakken naar een Android-apparaat te vergemakkelijken, gebruikt de code compilatiemacro's om de runtime-omgeving te onderscheiden: in de Editor wordt het pad gebruikt dat door m_FilePath is opgegeven; op het Android-apparaat wordt de gegevensbron op het apparaat gebruikt. De gegevens op het apparaat worden als volgt geplaatst:

  1. Voer de ingepakte app eerst één keer uit op het PICO-apparaat.
  2. Ga nadat de app is geïnstalleerd naar de gegevensmap (doorgaans PICO-apparaatopslag → Android → data → app BundleID → Files; raadpleeg het installatiepad van de Android-app voor de specifieke map) en maak een map LccData aan onder de submap Files.
  3. Kopieer alle LCC-gegevensbronnen naar de map LccData.

Opmerking:

  1. In de praktijk wordt aanbevolen om de gegevensbron van de PICO-app op een server te plaatsen in plaats van deze rechtstreeks in de app in te pakken.
  2. Het Pico 4 Ultra-apparaat rendert tegelijk ongeveer 700.000 Gaussiaanse primitieven op het scherm, ruwweg twee ordes van grootte minder dan de ~25 miljoen op een pc. Het wordt vooral aanbevolen voor de rendering en weergave van kleine scènes en afzonderlijke objecten; grote scènes verlopen vloeiender via pc-streaming.
  3. Bij het renderen van grote LCC-scènes wordt aanbevolen om StartLOD in te stellen op 2 en de weergave van omgevingsgegevens uit te schakelen (zoals in de voorbeeldcode).

Gerelateerde verwijzingen

  • Zie Optimalisatiegids voor projectinstellingen en Gids voor instellingen van renderprestatieparameters voor de projectinstelling en prestatieoptimalisatie.
  • Zie voor andere PICO-ontwikkelworkflows de officiële documentatie: PICO-ontwikkelaarsdocumentatie.