Guida allo sviluppo del cambio di modalità di rendering Mip
Mip e Non-Mip sono due percorsi tecnici per ricostruire e renderizzare 3DGS. L'effetto di rendering è migliore quando ricostruzione e rendering usano lo stesso percorso tecnico. L'LCC Unity SDK supporta il cambio dinamico della modalità di rendering in fase di esecuzione; i passaggi completi sono descritti di seguito.
Passaggio 1: crea la scena e i GameObject
Crea una scena completamente nuova in Unity. Unity crea Camera principale e Luce direzionale per impostazione predefinita.
Configura la Camera principale
Seleziona Camera principale nella finestra Gerarchia e imposta le sue proprietà nella finestra Inspector come mostrato di seguito.

Imposta le proprietà della Camera principale
Crea LCCManager
Fai clic con il pulsante destro su un'area vuota nella finestra Gerarchia, seleziona Crea vuoto dal menu a comparsa per creare un GameObject vuoto, assegna il nome LCCManager, normalizza il suo Transform e aggiungi lo script LCCManager tramite Aggiungi componente.

Crea il GameObject LCCManager e aggiungi lo script LCCManager
Crea LCCRenderer
Fai clic con il pulsante destro su un'area vuota nella finestra Gerarchia, seleziona Crea vuoto per creare un GameObject vuoto, assegna il nome LCCRenderer e imposta il suo Transform su Rotation.x = -90 e Scale.x = -1.

Crea LCCRenderer e imposta il suo Transform (Rotation.x = -90, Scale.x = -1)
Nota:
Le impostazioni Transform del GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) lo allineano al sistema di coordinate dei dati LCC. Per i dettagli sull'allineamento del sistema di coordinate, vedi "Sistema di coordinate dei dati LCC" in Introduzione all'Unity SDK.
Crea il pulsante di cambio
Fai clic con il pulsante destro su un'area vuota nella finestra Gerarchia, seleziona UI → Pulsante dal menu a comparsa per creare un pulsante denominato BtnMipSwitch.
Passaggio 2: scrivi uno script per cambiare la modalità di rendering
Crea un nuovo script C# denominato MipSwitch.cs con il seguente codice:
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("Avviato ");
// È necessario entrare in modalità Editor
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] avanzamento caricamento file: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] file caricato");
}
private void onMipSwitch()
{
if (m_mipMode == MipMode.Mip)
{
m_mipMode = MipMode.Non_Mip;
}
else
{
m_mipMode = MipMode.Mip;
}
m_manager.SetMipMode(m_mipMode);
}
}
Nota:
Questo esempio inizializza a
MipMode.MipinStarte associa l'evento clic per BtnMipSwitch; ogni clic cambia traMipeNon_Mip, e ha effetto immediato tramiteSetMipMode().
Passaggio 3: associa lo script e imposta le proprietà
- Associa lo script
MipSwitch.csal GameObject LCCManager nella finestra Gerarchia. - Nella finestra Inspector, trascina il GameObject LCCManager sulla proprietà Manager dello script.
- Inserisci il percorso del file LCC nella proprietà File Path dello script.
- Trascina il pulsante BtnMipSwitch sulla proprietà Btn Mip Switch dello script.

Associa lo script MipSwitch e imposta le proprietà Manager, File Path e BtnMipSwitch
Passaggio 4: esegui
Fai clic sul pulsante Play nella finestra Game, poi fai clic sul pulsante BtnMipSwitch per vedere il rendering della scena cambiare tra la modalità Mip e Non-Mip in tempo reale.

Il clic sul pulsante cambia la modalità di rendering Mip / Non-Mip in tempo reale dopo l'esecuzione
Consigli di selezione
- L'effetto di rendering è migliore solo quando la ricostruzione di 3DGS e il rendering di 3DGS usano lo stesso percorso tecnico.
- Dopo essere passati alla modalità Non-Mip, il dettaglio di rendering è di solito migliore, ma le prestazioni di rendering ne risentono in una certa misura.
API relative a Mip
L'LCC Unity SDK fornisce le seguenti API relative al cambio della modalità di rendering Mip tramite LCCManager.
SetMipMode
// Valore restituito: void
public void SetMipMode(MipMode _mipMode)
Cambia la modalità di rendering Mip. La modalità Mip usa il campionamento mipmap (predefinito) e la modalità Non_Mip disabilita la mipmap.
| Parametro | Tipo | Descrizione |
|---|---|---|
_mipMode | MipMode | Modalità di destinazione, Mip o Non_Mip |
Esempio di utilizzo:
m_manager.SetMipMode(MipMode.Non_Mip); // disabilita la mipmap
m_manager.SetMipMode(MipMode.Mip); // ripristina la mipmap
Note:
- Se la modalità corrente è uguale alla modalità passata, restituisce direttamente senza overhead ripetuto.
L'enum MipMode è definito come segue:
public enum MipMode { Mip, Non_Mip }
SetEditorMode
// Valore restituito: void
public void SetEditorMode(bool _isEditor)
Attiva/disattiva la modalità editor. Questo esempio chiama SetEditorMode(true) prima di caricare i dati.
| Parametro | Tipo | Descrizione |
|---|---|---|
_isEditor | bool | Indica se abilitare la modalità editor |
Esempio di utilizzo:
m_manager.SetEditorMode(true);
Note:
- Supportato solo sulle piattaforme PC / Mac.