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
  • Accessoires

    • Stick Light

      • Installatiegids
      • Basisbediening
      • FAQ
  • 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 Quest 3

De LCC-ontwikkelworkflow voor Quest 3 verschilt enigszins van de officiële workflow voor het aanmaken van VR-projecten van Meta: de officiële wijzigingen van Meta aan de Unity-configuratie zorgen ervoor dat LCC-rendering niet compatibel is met de aanbevolen workflow in hun ontwikkelingsdocumentatie. Zie de officiële workflow van Meta op Set up Unity for XR development. Voortbouwend op die workflow legt deze gids uit hoe je de LCC Unity SDK integreert om 3DGS-scènes te renderen.

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-inVersie
Unityv6000.0.69f1
Meta XR All-in-One SDKv205.0.0
LCC Unity SDKv2.1.35 en hoger

Opmerking:

  1. De Meta SDK ondersteunt alleen de Linear-kleurruimte van URP en LCC-scènes die in deze kleurruimte worden gerenderd, zien er enigszins flets uit.
  2. De Unity-versie, de Meta SDK-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: Een URP-project aanmaken

Selecteer Universal 3D in de projectsjabloon, zoals hieronder wordt weergegeven:

Een Universal 3D-project (URP) aanmaken

Een Universal 3D-project (URP) aanmaken

Stap 2: Het platform wijzigen

Selecteer nadat het project is aangemaakt Bestand → Build Profiles in het Unity-menu 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: 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

Installeer de OpenXR Plugin vanuit Unity Registry

Stap 4: XR Interaction Toolkit importeren

Selecteer Unity Registry in de linker lijst, voer XR in het zoekvak in, selecteer XR Interaction Toolkit in de zoekresultaten en installeer deze, zoals hieronder wordt weergegeven:

Installeer de XR Interaction Toolkit vanuit Unity Registry

Installeer de XR Interaction Toolkit vanuit Unity Registry

Stap 5: De Meta XR All-in-One SDK importeren

De Meta XR All-in-One SDK is Meta's XR-ontwikkeltoolkit; zie Meta XR All-in-One SDK (UPM).

Voeg deze SDK voordat je hem gebruikt toe aan je persoonlijke assets in de Unity Asset Store: https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657. Open vervolgens UPM via Venster → Package Manager, selecteer links My Assets, voer Meta XR in het zoekvak in en installeer Meta XR All-in-One SDK, zoals hieronder wordt weergegeven:

Installeer de Meta XR All-in-One SDK vanuit My Assets

Installeer de Meta XR All-in-One SDK vanuit My Assets

Stap 6: 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

Importeer de LCC Unity SDK via Pakket vanaf schijf installeren

Start Unity opnieuw op nadat je de bovenstaande stappen hebt voltooid voordat je doorgaat met de volgende instellingen.

Stap 7: De Unity-omgeving instellen

XR Plug-in Management configureren

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

Vink Initialize XR on Startup aan op het Desktop-platform

Vink Initialize XR on Startup aan op het Desktop-platform

Vink Initialize XR on Startup aan op het Android-platform

Vink Initialize XR on Startup aan op het Android-platform

Selecteer het item OpenXR onder XR Plug-in Management en stel de Render Mode voor zowel het Desktop- als het Android-platform in op Multi-pass, zoals hieronder wordt weergegeven:

Stel de OpenXR Render Mode in op Multi-pass

Stel de OpenXR Render Mode in op Multi-pass

Opmerking: De Meta XR All-in-One SDK wijzigt de waarde Render Mode; zorg ervoor dat deze waarde Multi-pass is voordat je bouwt.

Player configureren (Desktop-platform)

Selecteer links in Projectinstellingen Player, schakel naar het Desktop-platform, vouw de sectie Overige instellingen uit, schakel Auto Graphics API uit, stel Graphics APIs in op Vulkan, Direct3D12, Direct3D11 en verwijder de overige grafische API's; stel Color Space in op Linear, zoals hieronder wordt weergegeven:

Stel de grafische API's en de Linear-kleurruimte in op het Desktop-platform

Stel de grafische API's en de Linear-kleurruimte in op het Desktop-platform

Player configureren (Android-platform)

Selecteer links in Projectinstellingen Player, schakel naar het Android-platform, vouw de sectie Overige instellingen uit, schakel Auto Graphics API uit, stel Graphics APIs in op Vulkan en verwijder de overige grafische API's; stel Color Space in op Linear (de Meta SDK ondersteunt alleen de Linear-kleurruimte), zoals hieronder wordt weergegeven:

Stel de grafische API in op Vulkan en de Linear-kleurruimte in op het Android-platform

Stel de grafische API in op Vulkan en de Linear-kleurruimte in op het Android-platform

Company Name en Product Name instellen

Stel op het tabblad Player Company Name en Product Name correct in, zoals hieronder wordt weergegeven:

Stel Company Name en Product Name in

Stel Company Name en Product Name in

De scriptingbackend en invoer van het Android-platform instellen

Scroll omlaag in het tabblad Overige instellingen van het Android-platform en stel Minimum API Level = Android 12L (API Level 32) of hoger, Scripting Backend = IL2CPP, Target Architectures = ARM64, Active Input Handling = Input System Package (New) in, zoals hieronder wordt weergegeven:

Stel Minimum API Level, Scripting Backend, Target Architectures en Active Input Handling in

Stel Minimum API Level, Scripting Backend, Target Architectures en Active Input Handling in

Grafisch en Kwaliteit controleren

Selecteer links in Projectinstellingen Grafisch en controleer de Render Asset die overeenkomt met de Default Render Pipeline die door het Mobile-platform wordt gebruikt; in dit voorbeeld Mobile_RPAsset, zoals hieronder wordt weergegeven:

Controleer de Render Asset van de Default Render Pipeline op het Mobile-platform

Controleer de Render Asset van de Default Render Pipeline op het Mobile-platform

Selecteer links in Projectinstellingen Kwaliteit, controleer de Render Asset die overeenkomt met de Default Render Pipeline die door het Mobile-platform wordt gebruikt (in dit voorbeeld Mobile_RPAsset), stel Resolution Scaling Fixed DPI Factor = 0.7, VSync Count = Don't Sync in, zoals hieronder wordt weergegeven:

Stel de DPI Factor en VSync in bij Kwaliteit

Stel de DPI Factor en VSync in bij Kwaliteit

De Render Asset configureren

Zoek de Render Asset die overeenkomt met de Default Render Pipeline die door het Mobile-platform wordt gebruikt (in dit voorbeeld Mobile_RPAsset). Nadat je erop hebt geklikt, wordt het Asset gevonden in het projectvenster (Project). Selecteer het Asset en schakel vervolgens in het eigenschappenvenster (Inspector) Depth Texture, Opaque Texture en HDR uit; stel Anti Aliasing (MSAA) = Disabled, Render Scale = 0.7, Upscaling Filter = Automatic in, zoals hieronder wordt weergegeven:

Schakel Depth/Opaque Texture, HDR en MSAA uit en stel de Render Scale in de Render Asset in

Schakel Depth/Opaque Texture, HDR en MSAA uit en stel Render Scale = 0.7 in de Render Asset in

Zoek de bijbehorende Renderer voor deze Render Asset; in dit voorbeeld Mobile_Renderer (Universal Renderer Data), en stel de relevante eigenschappen in het eigenschappenvenster (Inspector) in, zoals hieronder wordt weergegeven:

Configureer de eigenschappen van Mobile_Renderer (Universal Renderer Data)

Configureer de eigenschappen van Mobile_Renderer (Universal Renderer Data)

Project Validation

Selecteer links in Projectinstellingen XR Plug-in Management en selecteer vervolgens Project Validation. Herstel de rood gemarkeerde validatie-items — klik op de knop Fix rechts van elk rood item om het te herstellen; de gele waarschuwingsitems kunnen indien nodig worden hersteld of voorlopig onbehandeld blijven. Vóór de verwerking, zoals hieronder wordt weergegeven:

Project Validation vóór de verwerking (rood gemarkeerde items aanwezig)

Project Validation vóór de verwerking (rood gemarkeerde items aanwezig)

Na de verwerking, zoals hieronder wordt weergegeven:

Project Validation na de verwerking (rood gemarkeerde items hersteld)

Project Validation na de verwerking (rood gemarkeerde items hersteld)

Stap 8: De scène aanmaken

Dit voorbeeld begint vanuit een gloednieuwe scène (Scene). Nadat je een Unity-scène hebt aangemaakt, verwijder je het Main Camera-GameObject in het hiërarchievenster (Hierarchy) en klik je vervolgens met de rechtermuisknop in een leeg gebied van het venster en selecteer je XR → XR Origin (VR) in het pop-upmenu, zoals hieronder wordt weergegeven:

Maak XR Origin (VR) aan via het rechtermuisknopmenu

Maak XR Origin (VR) aan via het rechtermuisknopmenu

Stap 9: De scène configureren

Selecteer het XR Origin (VR)-GameObject in het hiërarchievenster (Hierarchy) en stel in de XR Origin-component van het eigenschappenvenster (Inspector) Tracking Origin Mode in op Floor, zoals hieronder wordt weergegeven:

Stel Tracking Origin Mode van de XR Origin in op Floor

Stel Tracking Origin Mode van de XR Origin in op Floor

Selecteer het Main Camera-GameObject onder XR Origin (VR) in het hiërarchievenster (Hierarchy) en stel de Camera-eigenschappen in het eigenschappenvenster (Inspector) in:

EigenschapAanbevolen waardeBeschrijving
Field of View60FOV
Clipping Planes → Near0.2 ~ 0.3Nabij knipvlak
Clipping Planes → Far3000 ~ 5000Ver knipvlak, voor grootschalige scènes
Anti-aliasingNo Anti-aliasingStandaard uitgeschakeld
Opaque TextureOffStandaard uit
Depth TextureOffStandaard uit
Background TypeSolid ColorEen effen kleur wordt aanbevolen
BackgroundBlackAls standaard achtergrondkleur wordt zwart aanbevolen
HDR RenderingOffStandaard uit
MSAAOffStandaard uit
URP Dynamic ResolutionOffStandaard uit

De overige eigenschappen zijn 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

Stap 10: 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 eraan toe, zoals hieronder wordt weergegeven:

Maak een leeg LCCManager-object aan en voeg het LCCManager-script toe

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 de Transform in op uitlijning met het coördinatensysteem

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;

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

    private LCCCore.Renderer m_renderer;

    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.Quest);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load(m_FilePath, onProgress, onLoaded);
        //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 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, en bouw en voer daarna uit.

Voeg het LCCRenderer-script toe aan het object en bind de Manager en het bestandspad

Voeg het LCCRenderer-script toe aan het object en bind de Manager en het bestandspad

Om het debuggen in de Unity Editor en het rechtstreeks bouwen naar een Android-apparaat te vergemakkelijken, gebruikt de code compileermacro's om de runtime-omgeving te onderscheiden: gebruik het pc-platform in de Unity Editor en gebruik het Quest-platform op een Quest-apparaat.

Voor Quest-apparaten wordt aanbevolen om de gegevensbron op een server te plaatsen; tijdens het testen kun je de gegevensbron ook rechtstreeks op het apparaat gebruiken. De specifieke stappen zijn:

  1. Voer de gebouwde app één keer uit op het Quest-apparaat.
  2. Ga nadat de app is geïnstalleerd naar de gegevensmap (doorgaans Quest-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 Quest-app op een server te plaatsen in plaats van deze rechtstreeks in de app in te pakken.
  2. De on-screen renderingcapaciteit voor 3DGS van het Quest 3-apparaat bedraagt ongeveer 700.000 Gaussiaanse primitieven, ruwweg twee ordes van grootte lager dan de pc-zijdecapaciteit van ongeveer 25 miljoen. Het wordt vooral aanbevolen voor het renderen en weergeven van kleine scènes en afzonderlijke objecten; grote scènes verlopen vloeiender met 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 verwijzing

  • Zie voor projectinstellingen en prestatieoptimalisatie de hoofdstukken Optimalisatiegids voor projectinstellingen en Gids voor instellingen van renderprestatieparameters.
  • Raadpleeg voor andere Meta-ontwikkelworkflows de officiële documentatie: Meta-ontwikkelaarsdocumentatie.
  • Stel tijdens Quest-ontwikkeling de Render Mode van het Desktop-platform in op Multi-pass in Projectinstellingen → OpenXR; anders kunnen LCC-scènes niet normaal renderen in Unity (zowel in de Editor als tijdens Runtime).