Przewodnik optymalizacji ustawień projektu
Renderowanie 3DGS koncentruje się na sortowaniu i renderowaniu GPU i jest dużym konsumentem zasobów. Potok graficzny, API graficzne, ustawienia kamery i jakości w projekcie bezpośrednio decydują o liczbie klatek i zużyciu pamięci wideo. Rozsądna konfiguracja projektu może znacząco poprawić liczbę klatek i zmniejszyć zużycie pamięci wideo. Ten dokument opisuje organizację sceny oraz zalecane ustawienia potoku graficznego, API graficznego, kamery i jakości. Jako przykład użyto Unity 6000.0 LTS z potokiem renderowania URP.
Organizacja obiektów sceny
W trybie SingleRender utwórz w scenie pusty GameObject, ustaw jego właściwości Transform, dołącz własny skrypt, pobierz w tym skrypcie obiekt Renderer i wywołaj metodę renderer.Load(), aby załadować dane.
W trybie MultiRender zwykle dynamicznie tworzysz odpowiednie puste GameObjects, ustawiasz ich właściwości Transform w kodzie, wiążesz jeden pusty GameObject z każdym obiektem Renderer i niezależnie sterujesz metodą renderer.Load() każdego obiektu, aby załadować dane.
We wszystkich trybach każda scena może niezależnie ustawić swoją pozycję, obrót i skalę, umożliwiając niezależne działanie i sterowanie.
Ustawienia platformy i potoku
Ponieważ dane 3DGS są rekonstruowane i trenowane w przestrzeni kolorów Gamma, ustawienie Przestrzeni kolorów na Gamma pomaga poprawić jakość renderowania; renderowanie w przestrzeni kolorów Linear sprawia, że scena jest nieco wyblakła.
Dla platform o różnym poziomie wydajności SDK udostępnia algorytmy sortowania GPU o różnej wydajności, obsługując Direct3D12, Direct3D11, Vulkan i Metal. Zostały one zweryfikowane na Intel HD Graphics 620, seriach NVIDIA RTX 1x/2x/3x/4x, serii AMD 7900X oraz Apple M1/M2.
Priorytet API graficznego
Zalecany priorytet API graficznego dla każdej platformy jest następujący. W Windows preferuj Direct3D12, aby poprawić liczbę klatek.
| Platforma | Priorytet API graficznego |
|---|---|
| Windows | Direct3D12 > Vulkan > Direct3D11 |
| Linux | Vulkan |
| macOS | Metal |
Na pasku menu Unity wybierz Plik → Ustawienia projektu, po lewej stronie okna Ustawienia projektu wybierz Odtwarzacz, przełącz na kartę platformy docelowej do publikacji (Pulpit dla komputerów stacjonarnych; wybierz Android, jeśli publikujesz na Android), rozwiń sekcję Inne ustawienia i skonfiguruj API graficzne dla każdej platformy:
- Windows: odznacz Automatyczny API grafiki dla systemu Windows, ustaw API graficzne na Direct3D12, Vulkan, Direct3D11 i usuń pozostałe API graficzne;
- macOS: odznacz Automatyczny API grafiki dla Mac, ustaw API graficzne na Metal i usuń pozostałe API graficzne;
- Linux: odznacz Automatyczny API grafiki dla Linux, ustaw API graficzne na Vulkan i usuń pozostałe API graficzne.
Na koniec ustaw Przestrzeń kolorów na Gamma, jak pokazano poniżej:

Ustaw API graficzne
Zalecenia ustawień grafiki (takie same dla PC i urządzeń mobilnych)
Po lewej stronie okna Ustawienia projektu wybierz Grafika i sprawdź Render Asset używany przez bieżący Domyślny potok renderowania, którym w tym przykładzie jest Mobile_RPAsset, jak pokazano poniżej:

Sprawdź używany Render Asset
Po lewej stronie okna Ustawienia projektu wybierz Jakość i sprawdź Render Asset używany przez bieżący Domyślny potok renderowania, którym w tym przykładzie jest Mobile_RPAsset. Ustaw Stały współczynnik DPI skalowania rozdzielczości = 0.7 i Liczba VSync = Bez synchronizacji, jak pokazano poniżej:

Sprawdź ustawienia Jakości
Kliknięcie Render Asset używanego przez bieżący Domyślny potok renderowania (Mobile_RPAsset w tym przykładzie) lokalizuje ten zasób w oknie Projekt; wybierz go i ustaw odpowiednie przełączniki właściwości w oknie Inspektor.
Zarówno dla PC, jak i urządzeń mobilnych zaleca się wyłączenie HDR, MSAA i podobnych trybów, aby zmniejszyć obciążenie przepustowości i pamięci wideo:
- Wyłącz Teksturę głębi
- Wyłącz Teksturę nieprzezroczystą
- Wyłącz HDR
- Wyłącz Wygładzanie krawędzi (MSAA)
Możesz też użyć wbudowanej superrozdzielczości URP, czyli ustawić Skalę renderowania = 0.7 i Filtr skalowania = Automatyczny, jak pokazano poniżej:

Wyłącz HDR, Teksturę głębi, Teksturę nieprzezroczystą i Wygładzanie krawędzi (MSAA) w zasobie potoku renderowania
Urządzenia mobilne (URP) używają tej samej strategii co PC: również wyłącz HDR, Teksturę głębi, Teksturę nieprzezroczystą i MSAA oraz włącz superrozdzielczość.
Znajdź pasujący Renderer zasobu Render Asset używanego przez Domyślny potok renderowania platformy, którym w tym przykładzie jest Mobile_Renderer (Universal Renderer Data), i ustaw jego powiązane właściwości w oknie Inspektor, jak pokazano poniżej:

Ustaw Renderer
Ustawienia kamery
Wybierz kamerę w oknie Hierarchia (domyślnie Kamera główna) i ustaw właściwości kamery w oknie Inspektor:
| Właściwość | Zalecana wartość | Opis |
|---|---|---|
| Pole widzenia | 60 | FOV |
| Płaszczyzny przycinania → Blisko | 0.2 ~ 0.3 | Bliska płaszczyzna przycinania |
| Płaszczyzny przycinania → Daleko | 5000 ~ 15000 | Daleka płaszczyzna przycinania, obejmująca duże sceny |
| Wygładzanie krawędzi | Bez wygładzania krawędzi | Wygładzanie krawędzi domyślnie wyłączone |
| Tekstura nieprzezroczysta | Wyłączone | Domyślnie wyłączone |
| Tekstura głębi | Wyłączone | Domyślnie wyłączone |
| Typ tła | Jednolity kolor | Zalecany jednolity kolor |
| Tło | Czarny | Zalecany czarny jako domyślny kolor tła |
| Renderowanie HDR | Wyłączone | Domyślnie wyłączone |
| MSAA | Wyłączone | Domyślnie wyłączone |
Pozostałe właściwości można ustawić w razie potrzeby.

Ustaw Płaszczyzny przycinania, Flagi czyszczenia i kolor tła kamery w Inspektorze