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 / pakket | Versie | Beschrijving |
|---|---|---|
| Unity | v2022.3.62f3 | Gebruikt Unity 2022 LTS |
| PICO Unity Integration SDK | v3.4.0 | Verkregen via het officiële kanaal van PICO |
| LCC Unity SDK | v2.1.27 en later | De 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:
- Omdat de PICO Unity Integration SDK ernstige prestatieproblemen heeft op de URP-pipeline, wordt de Built-in-renderpipeline aanbevolen; zie de bekende problemen.
- 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.
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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 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
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:
- Voer de ingepakte app eerst één keer uit op het PICO-apparaat.
- 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
LccDataaan onder de submap Files. - Kopieer alle LCC-gegevensbronnen naar de map
LccData.
Opmerking:
- 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.
- 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.
- 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 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.