Przewodnik deweloperski dla Pico 4 Ultra
Przepływ pracy LCC dla Pico 4 Ultra jest zasadniczo taki sam jak oficjalny przepływ tworzenia projektu VR firmy PICO; zobacz dokumentację PICO Unity Integration SDK. Ten przewodnik opiera się na nim i wyjaśnia, jak zintegrować LCC Unity SDK w celu renderowania scen 3DGS.
Wymagania dotyczące wersji
Wersje oprogramowania i pakietów używane w tym przewodniku są wymienione poniżej. Zaleca się tworzenie z użyciem tych samych wersji; inne, nieprzetestowane wersje mogą mieć problemy ze zgodnością:
| Oprogramowanie / Pakiet | Wersja | Opis |
|---|---|---|
| Unity | v2022.3.62f3 | Używa Unity 2022 LTS |
| PICO Unity Integration SDK | v3.4.0 | Pobrany z oficjalnego kanału PICO |
| LCC Unity SDK | v2.1.27 i nowsze | Wersja obsługująca Built-in; pobierz wersję zgodną z Unity 2022 LTS |
Szczegółowe wymagania sprzętowe i programowe znajdziesz w Wymagania środowiska deweloperskiego.
Uwaga:
- Ponieważ PICO Unity Integration SDK ma poważne problemy z wydajnością w potoku URP, zalecany jest potok renderowania Built-in; zobacz jego znane problemy.
- Jeśli testujesz w Unity v6000.0.69f1 i aplikacja zawiesza się lub ulega awarii, przełącz się na Unity v2022.3 LTS: urządzenia z serii PICO 4 mają problemy ze zgodnością z aplikacjami używającymi jednocześnie Unity 6 i Vulkan; zobacz jego znane problemy.
- Wersja Unity, wersja PICO SDK i wersja LCC SDK wpływają na renderowanie i wydajność; staraj się utrzymywać wersje oprogramowania spójne z tym przewodnikiem.
Przepływ pracy deweloperskiej
Krok 1: Utwórz projekt
W szablonie projektu wybierz typ 3D (Built-in Render Pipeline). Ponieważ PICO Unity Integration SDK ma poważne problemy z wydajnością w potoku URP, nie wybieraj potoku URP, jak pokazano poniżej:

Utwórz projekt 3D (Built-in Render Pipeline)
Krok 2: Przełącz platformę
W menu Unity wybierz Plik → Profile kompilacji, aby otworzyć okno kompilacji i przełączyć platformę na Android, jak pokazano poniżej:

Przełącz platformę na Android w Profilach kompilacji
Krok 3: Zaimportuj PICO Unity Integration SDK
Pobierz PICO Unity Integration SDK z oficjalnej strony PICO i zainstaluj go zgodnie z samouczkiem PICO; możesz go też zaimportować bezpośrednio z GitHub pod adresem https://github.com/Pico-Developer/PICO-Unity-Integration-SDK.git. Ten przewodnik używa wersji v3.4.0, jak pokazano poniżej:

Zaimportuj PICO Unity Integration SDK v3.4.0
Krok 4: Zaimportuj LCC Unity SDK
Otwórz okno UPM przez menu Unity Okno → Menedżer pakietów, kliknij + po lewej stronie, wybierz Zainstaluj pakiet z dysku z listy rozwijanej, przejdź do LCC Unity SDK i wybierz plik package.json, aby go zaimportować, jak pokazano poniżej:

Zaimportuj LCC Unity SDK przez Zainstaluj pakiet z dysku
Krok 5: Skonfiguruj środowisko Unity
Skonfiguruj XR Plug-in Management
Na pasku menu Unity wybierz Plik → Ustawienia projektu, po lewej stronie wybierz Zarządzanie wtyczkami XR i zaznacz Zainicjuj XR przy uruchomieniu na karcie platformy Android, jak pokazano poniżej:

Zaznacz Zainicjuj XR przy uruchomieniu w Zarządzaniu wtyczkami XR
Wybierz pozycję PICO w sekcji Zarządzanie wtyczkami XR i ustaw Tryb renderowania platformy Android na MultiView, jak pokazano poniżej:

Ustaw Tryb renderowania PICO na MultiView
Wybierz pozycję Walidacja projektu w sekcji Zarządzanie wtyczkami XR i kliknij Napraw wszystko, aby dokończyć niezbędne ustawienia (można to również pominąć i utworzyć ręcznie później), jak pokazano poniżej:

Kliknij Napraw wszystko w Walidacji projektu
Uwaga:
- Kliknięcie Napraw wszystko tworzy niezbędne GameObjects w aktualnie otwartej scenie, więc musisz usunąć Kamerę główną i Światło kierunkowe w scenie.
- Ten przykład naprawia tylko UIOrientation.LandscapeLeft; wszystko inne jest tworzone ręcznie.
Skonfiguruj Keystore
Tworzenie dla PICO wymaga Keystore. Przejdź do Odtwarzacz → karta Android → Ustawienia publikowania → Menedżer magazynu kluczy, utwórz nowy Keystore i dokończ ustawienia, jak pokazano poniżej:

Utwórz nowy Keystore w Menedżerze magazynu kluczy
Ustaw nazwę firmy i nazwę produktu
Tworzenie dla PICO nie pozwala na domyślną wartość defaultCompany. Na karcie Odtwarzacz ustaw poprawną Nazwę firmy i Nazwę produktu, jak pokazano poniżej:

Ustaw Nazwę firmy i Nazwę produktu
Skonfiguruj opcje jakości
W Ustawieniach projektu wybierz kartę Jakość i ustaw Wygładzanie krawędzi = Wyłączone, Stały współczynnik DPI skalowania rozdzielczości = 0.7 i Liczba VSync = Bez synchronizacji, jak pokazano poniżej:

Wyłącz wygładzanie krawędzi i ustaw współczynnik DPI oraz VSync na karcie Jakość
Wpisz AppID
W menu Unity wybierz PICO → Platforma → Ustawienia platformy, aby otworzyć panel ustawień, i wpisz AppID, o który ubiegałeś się na platformie deweloperskiej PICO, w polu Wklej swój App ID tutaj; zobacz Utwórz konto deweloperskie, organizację i aplikację.

Wpisz AppID w Ustawieniach platformy PICO
Skonfiguruj Grafikę
W Ustawieniach projektu wybierz kartę Grafika, wybierz platformę Android i skonfiguruj jak pokazano poniżej:

Skonfiguruj platformę Android na karcie Grafika
Skonfiguruj Odtwarzacz
W Ustawieniach projektu wybierz kartę Odtwarzacz, wybierz platformę Android, ustaw Przestrzeń kolorów = Gamma, odznacz Automatyczny API grafiki i pozostaw tylko Vulkan, a pozostałe ustawienia jak pokazano poniżej:

Ustaw Przestrzeń kolorów na Gamma i pozostaw tylko Vulkan jako API graficzne
Przewiń bieżącą kartę w dół i ustaw Minimalny poziom API = Android 10.0, Backend skryptowy = IL2CPP, Poziom zgodności API = .NET Standard 2.1 i Architektury docelowe = ARM64, a pozostałe ustawienia jak pokazano poniżej:

Ustaw Minimalny poziom API, Backend skryptowy, Poziom zgodności API i Architektury docelowe
Kontynuuj przewijanie bieżącej karty w dół i ustaw Aktywna obsługa wejścia = Pakiet Input System (nowy), a pozostałe ustawienia jak pokazano poniżej:

Ustaw Aktywną obsługę wejścia na Pakiet Input System (nowy)
Krok 6: Utwórz scenę
Utwórz zupełnie nową scenę w Unity i usuń Kamerę główną oraz Światło kierunkowe. Kliknij prawym przyciskiem myszy w pustym obszarze okna Hierarchia i wybierz XR → XR Origin (VR) z menu podręcznego, aby utworzyć niezbędne obiekty XR.
Wybierz obiekt XR Origin (VR) i dodaj komponent PXR_Manager przez Dodaj komponent w oknie Inspektor oraz skonfiguruj jego powiązane właściwości, jak pokazano poniżej:

Dodaj i skonfiguruj komponent PXR_Manager na XR Origin (VR)
Wybierz obiekt XR Origin (VR) i w komponencie XR Origin w oknie Inspektor ustaw Tryb początku śledzenia na Podłoga, a pozostałe właściwości jak pokazano poniżej:

Ustaw Tryb początku śledzenia komponentu XR Origin na Podłoga
Wybierz Kamerę główną (drugorzędne dziecko XR Origin (VR)) i ustaw powiązane właściwości komponentu Kamera w oknie Inspektor, jak pokazano poniżej:

Ustaw właściwości komponentu Kamera Kamery głównej pod XR Origin (VR)
W oknie Hierarchia kliknij prawym przyciskiem myszy Utwórz pusty, aby utworzyć pusty obiekt o nazwie LCCManager, znormalizuj jego Transform i dołącz skrypt LCCManager przez Dodaj komponent, jak pokazano poniżej:

Utwórz pusty obiekt LCCManager i dołącz skrypt LCCManager
W oknie Hierarchia kliknij prawym przyciskiem myszy Utwórz pusty, aby utworzyć kolejny pusty obiekt o nazwie LCCRenderer, i ustaw jego Transform z Rotation.x = -90 i Scale.x = -1, jak pokazano poniżej:

Utwórz pusty obiekt LCCRenderer i ustaw Rotation.x = -90, Scale.x = -1, aby wyrównać układ współrzędnych
Rotation.x = -90 i Scale.x = -1 to transformacja wyrównująca z układu współrzędnych danych LCC (prawoskrętny z osią Z w górę) do układu współrzędnych Unity (lewoskrętny z osią Y w górę); zobacz „Układ współrzędnych danych LCC" w Wprowadzenie do Unity SDK.
Napisz skrypt C# o nazwie LCCRenderer.cs z następującym kodem:
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; // Zmniejsz rozdzielczość tekstury, aby poprawić wydajność
}
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("postęp:" + v);
}
private void onLoaded()
{
m_manager.SetStartLod(2);
m_renderer.SetEnvironment(false);
Debug.Log("Dane załadowane");
}
}
Dołącz ten skrypt do GameObject LCCRenderer w oknie Hierarchia, następnie przeciągnij GameObject LCCManager na właściwość Manager skryptu w oknie Inspektor, a na koniec wpisz ścieżkę pliku LCC.

Dołącz skrypt LCCRenderer i powiąż Manager oraz ścieżkę pliku
Aby ułatwić debugowanie w Edytorze Unity i bezpośrednie pakowanie na urządzenie z Androidem, kod używa makr kompilacji do rozróżnienia środowiska uruchomieniowego: w Edytorze używa ścieżki określonej przez m_FilePath; na urządzeniu z Androidem używa źródła danych na urządzeniu. Dane na urządzeniu są umieszczane w następujący sposób:
- Najpierw uruchom raz spakowaną aplikację na urządzeniu PICO.
- Po zainstalowaniu aplikacji przejdź do jej katalogu danych (zwykle Pamięć urządzenia PICO → Android → data → BundleID aplikacji → Files; konkretny katalog znajdziesz w ścieżce instalacji aplikacji Android) i utwórz folder
LccDataw podkatalogu Files. - Skopiuj wszystkie dane źródłowe LCC do folderu
LccData.
Uwaga:
- W praktyce zaleca się umieszczenie źródła danych aplikacji PICO na serwerze, zamiast pakowania go bezpośrednio do aplikacji.
- Urządzenie Pico 4 Ultra renderuje jednocześnie około 700 000 prymitywów gaussowskich na ekranie, czyli mniej więcej o dwa rzędy wielkości mniej niż ~25 milionów na PC. Jest ono głównie zalecane do renderowania i wyświetlania małych scen i pojedynczych obiektów; duże sceny są płynniejsze przez strumieniowanie PC.
- Podczas renderowania dużych scen LCC zaleca się ustawienie StartLOD na
2i wyłączenie wyświetlania danych środowiskowych (jak w przykładowym kodzie).
Powiązane materiały
- Konfigurację projektu i optymalizację wydajności znajdziesz w Przewodnik optymalizacji ustawień projektu oraz Przewodnik ustawień parametrów wydajności renderowania.
- Inne przepływy pracy deweloperskiej PICO znajdziesz w oficjalnej dokumentacji: Dokumentacja deweloperska PICO.