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-in | Versie |
|---|---|
| Unity | v6000.0.69f1 |
| Meta XR All-in-One SDK | v205.0.0 |
| LCC Unity SDK | v2.1.35 en hoger |
Opmerking:
- 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.
- 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
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
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: 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
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
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
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 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
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
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
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
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
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
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
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 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)
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)
Na de verwerking, zoals hieronder wordt weergegeven:

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
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
Selecteer het Main Camera-GameObject onder XR Origin (VR) in het hiërarchievenster (Hierarchy) en stel de Camera-eigenschappen in het eigenschappenvenster (Inspector) in:
| Eigenschap | Aanbevolen waarde | Beschrijving |
|---|---|---|
| Field of View | 60 | FOV |
| Clipping Planes → Near | 0.2 ~ 0.3 | Nabij knipvlak |
| Clipping Planes → Far | 3000 ~ 5000 | Ver knipvlak, voor grootschalige scènes |
| Anti-aliasing | No Anti-aliasing | Standaard uitgeschakeld |
| Opaque Texture | Off | Standaard uit |
| Depth Texture | Off | Standaard uit |
| Background Type | Solid Color | Een effen kleur wordt aanbevolen |
| Background | Black | Als standaard achtergrondkleur wordt zwart aanbevolen |
| HDR Rendering | Off | Standaard uit |
| MSAA | Off | Standaard uit |
| URP Dynamic Resolution | Off | Standaard 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
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
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;
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
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:
- Voer de gebouwde app één keer uit op het Quest-apparaat.
- 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
LccDataaan onder de submap Files. - Kopieer alle LCC-gegevensbronnen naar de map
LccData.
Opmerking:
- 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.
- 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.
- Bij het renderen van grote LCC-scènes wordt aanbevolen om StartLOD in te stellen op
2en 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).