Przewodnik przełączania trybu renderowania Mip
Mip i Non-Mip to dwie ścieżki techniczne rekonstrukcji i renderowania 3DGS. Efekt renderowania jest najlepszy, gdy rekonstrukcja i renderowanie używają tej samej ścieżki technicznej. LCC Unity SDK obsługuje dynamiczne przełączanie trybu renderowania w czasie działania; kompletne kroki opisano poniżej.
Krok 1: Utwórz scenę i GameObjects
Utwórz zupełnie nową scenę w Unity. Unity domyślnie tworzy Kamerę główną i Światło kierunkowe.
Skonfiguruj Kamerę główną
Wybierz Kamerę główną w oknie Hierarchia i ustaw jej właściwości w oknie Inspektor, jak pokazano poniżej.

Ustaw właściwości Kamery głównej
Utwórz LCCManager
Kliknij prawym przyciskiem myszy pusty obszar w oknie Hierarchia, wybierz Utwórz pusty z menu podręcznego, aby utworzyć pusty GameObject, nazwij go LCCManager, znormalizuj jego Transform i dodaj do niego skrypt LCCManager przez Dodaj komponent.

Utwórz GameObject LCCManager i dodaj skrypt LCCManager
Utwórz LCCRenderer
Kliknij prawym przyciskiem myszy pusty obszar w oknie Hierarchia, wybierz Utwórz pusty, aby utworzyć pusty GameObject, nazwij go LCCRenderer i ustaw jego Transform na Rotation.x = -90 i Scale.x = -1.

Utwórz LCCRenderer i ustaw jego Transform (Rotation.x = -90, Scale.x = -1)
Uwaga:
Ustawienia Transform GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) wyrównują go z układem współrzędnych danych LCC. Szczegóły wyrównania układu współrzędnych znajdziesz w sekcji „Układ współrzędnych danych LCC" w Wprowadzenie do Unity SDK.
Utwórz przycisk przełączania
Kliknij prawym przyciskiem myszy pusty obszar w oknie Hierarchia, wybierz UI → Przycisk z menu podręcznego, aby utworzyć przycisk o nazwie BtnMipSwitch.
Krok 2: Napisz skrypt, aby przełączyć tryb renderowania
Utwórz nowy skrypt C# o nazwie MipSwitch.cs z następującym kodem:
using LCCCore;
using UnityEngine;
using UnityEngine.UI;
public class MipSwitch : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
public Button m_BtnMipSwitch;
private LCCCore.Renderer m_renderer;
private MipMode m_mipMode;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
Debug.Log("Uruchomiono ");
// Trzeba wejść w tryb Edycji
m_manager.SetEditorMode(true);
m_mipMode = MipMode.Mip;
m_BtnMipSwitch.onClick.AddListener(onMipSwitch);
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(m_FilePath, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"[LCCRenderer] postęp ładowania pliku: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] plik załadowany");
}
private void onMipSwitch()
{
if (m_mipMode == MipMode.Mip)
{
m_mipMode = MipMode.Non_Mip;
}
else
{
m_mipMode = MipMode.Mip;
}
m_manager.SetMipMode(m_mipMode);
}
}
Uwaga:
Ten przykład inicjalizuje
MipMode.MipwStarti wiąże zdarzenie kliknięcia dla BtnMipSwitch; każde kliknięcie przełącza międzyMipaNon_Mipi działa natychmiast przezSetMipMode().
Krok 3: Dołącz skrypt i ustaw właściwości
- Dołącz skrypt
MipSwitch.csdo GameObject LCCManager w oknie Hierarchia. - W oknie Inspektor przeciągnij GameObject LCCManager na właściwość Manager skryptu.
- Wpisz ścieżkę pliku LCC we właściwości File Path skryptu.
- Przeciągnij przycisk BtnMipSwitch na właściwość Btn Mip Switch skryptu.

Dołącz skrypt MipSwitch i ustaw właściwości Manager, File Path oraz BtnMipSwitch
Krok 4: Uruchom
Kliknij przycisk Odtwórz w oknie Gra, a następnie kliknij przycisk BtnMipSwitch, aby zobaczyć, jak renderowanie sceny przełącza się między trybami Mip i Non-Mip w czasie rzeczywistym.

Kliknięcie przycisku przełącza tryb renderowania Mip / Non-Mip w czasie rzeczywistym po uruchomieniu
Zalecenia wyboru
- Efekt renderowania jest najlepszy tylko wtedy, gdy rekonstrukcja 3DGS i renderowanie 3DGS używają tej samej ścieżki technicznej.
- Po przełączeniu w tryb Non-Mip szczegółowość renderowania jest zwykle lepsza, ale wydajność renderowania jest w pewnym stopniu obniżona.
API powiązane z Mip
LCC Unity SDK udostępnia poniższe API powiązane z przełączaniem trybu renderowania Mip przez LCCManager.
SetMipMode
// Wartość zwracana: void
public void SetMipMode(MipMode _mipMode)
Przełącza tryb renderowania Mip. Tryb Mip używa próbkowania mipmap (domyślnie), a tryb Non_Mip wyłącza mipmapę.
| Parametr | Typ | Opis |
|---|---|---|
_mipMode | MipMode | Tryb docelowy, Mip lub Non_Mip |
Przykład użycia:
m_manager.SetMipMode(MipMode.Non_Mip); // wyłącz mipmapę
m_manager.SetMipMode(MipMode.Mip); // przywróć mipmapę
Uwagi:
- Jeśli bieżący tryb jest taki sam jak przekazany, funkcja zwraca bezpośrednio bez powtarzalnego narzutu.
Typ wyliczeniowy MipMode jest zdefiniowany następująco:
public enum MipMode { Mip, Non_Mip }
SetEditorMode
// Wartość zwracana: void
public void SetEditorMode(bool _isEditor)
Przełącza tryb edytora. Ten przykład wywołuje SetEditorMode(true) przed załadowaniem danych.
| Parametr | Typ | Opis |
|---|---|---|
_isEditor | bool | Czy włączyć tryb edytora |
Przykład użycia:
m_manager.SetEditorMode(true);
Uwagi:
- Obsługiwane tylko na platformach PC / Mac.