Ontwikkelgids voor het schakelen tussen Mip-renderingmodi
Mip en Non-Mip zijn twee technische paden voor het reconstrueren en renderen van 3DGS. Het renderingeffect is het beste wanneer reconstructie en rendering hetzelfde technische pad gebruiken. De LCC Unity SDK ondersteunt het dynamisch schakelen van de renderingmodus tijdens runtime; de volledige stappen worden hieronder beschreven.
Stap 1: De scène en GameObjects aanmaken
Maak een gloednieuwe scène aan in Unity. Unity maakt standaard Main Camera en Directional Light aan.
Main Camera instellen
Selecteer Main Camera in het Hiërarchie-venster en stel de eigenschappen in het Inspector-venster in zoals hieronder wordt weergegeven.

Stel de eigenschappen van Main Camera in
LCCManager aanmaken
Klik met de rechtermuisknop op een leeg gebied in het Hiërarchie-venster, selecteer Create Empty in het pop-upmenu om een leeg GameObject aan te maken, geef het de naam LCCManager, normaliseer de Transform en voeg het LCCManager-script eraan toe via Component toevoegen.

Maak het LCCManager-GameObject aan en voeg het LCCManager-script toe
LCCRenderer aanmaken
Klik met de rechtermuisknop op een leeg gebied in het Hiërarchie-venster, selecteer Create Empty om een leeg GameObject aan te maken, geef het de naam LCCRenderer en stel de Transform in op Rotation.x = -90 en Scale.x = -1.

Maak LCCRenderer aan en stel de Transform in (Rotation.x = -90, Scale.x = -1)
Opmerking:
De Transform-instellingen van het LCCRenderer-GameObject (Rotation.x = -90, Scale.x = -1) lijnen het uit met het coördinatensysteem van de LCC-gegevens. Zie "Coördinatensysteem van LCC-gegevens" in LCC Unity SDK Introductie voor meer informatie over de uitlijning van het coördinatensysteem.
De schakelknop aanmaken
Klik met de rechtermuisknop op een leeg gebied in het Hiërarchie-venster, selecteer UI → Button in het pop-upmenu om een Button met de naam BtnMipSwitch aan te maken.
Stap 2: Een script schrijven om de renderingmodus te schakelen
Maak een nieuw C#-script aan met de naam MipSwitch.cs met de volgende code:
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("Gestart ");
// Moet naar de Edit-modus gaan
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] laadvoortgang van het bestand: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] bestand geladen");
}
private void onMipSwitch()
{
if (m_mipMode == MipMode.Mip)
{
m_mipMode = MipMode.Non_Mip;
}
else
{
m_mipMode = MipMode.Mip;
}
m_manager.SetMipMode(m_mipMode);
}
}
Opmerking:
Dit voorbeeld initialiseert in
StartopMipMode.Mipen bindt de klikgebeurtenis voor BtnMipSwitch; elke klik schakelt tussenMipenNon_Mipen wordt onmiddellijk van kracht viaSetMipMode().
Stap 3: Het script toevoegen en eigenschappen instellen
- Voeg het
MipSwitch.cs-script toe aan het LCCManager-GameObject in het Hiërarchie-venster. - Sleep in het Inspector-venster het LCCManager-GameObject naar de eigenschap Manager van het script.
- Vul het LCC-bestandspad in bij de eigenschap File Path van het script.
- Sleep de BtnMipSwitch-knop naar de eigenschap Btn Mip Switch van het script.

Voeg het MipSwitch-script toe en stel de eigenschappen Manager, File Path en BtnMipSwitch in
Stap 4: Uitvoeren
Klik op de knop Play in het Game-venster en klik vervolgens op de knop BtnMipSwitch om de scènerendering in realtime te zien schakelen tussen de Mip- en Non-Mip-modus.

Door op de knop te klikken schakelt de Mip / Non-Mip-renderingmodus in realtime na het uitvoeren
Selectieaanbevelingen
- Het renderingeffect is alleen optimaal wanneer het reconstrueren van 3DGS en het renderen van 3DGS het zelfde technische pad gebruiken.
- Na het overschakelen naar de Non-Mip-modus is de renderingdetaillering doorgaans beter, maar worden de renderingprestaties in zekere mate beïnvloed.
Mip-gerelateerde API's
De LCC Unity SDK biedt via LCCManager de volgende API's voor het schakelen van de Mip-renderingmodus.
SetMipMode
// Retourwaarde: void
public void SetMipMode(MipMode _mipMode)
Schakelt de Mip-renderingmodus. De Mip-modus gebruikt mipmap-sampling (standaard) en de Non_Mip-modus schakelt mipmap uit.
| Parameter | Type | Beschrijving |
|---|---|---|
_mipMode | MipMode | Doelmodus, Mip of Non_Mip |
Gebruiksvoorbeeld:
m_manager.SetMipMode(MipMode.Non_Mip); // mipmap uitschakelen
m_manager.SetMipMode(MipMode.Mip); // mipmap herstellen
Opmerkingen:
- Als de huidige modus gelijk is aan de doorgegeven modus, wordt onmiddellijk geretourneerd zonder herhaalde overhead.
De enum MipMode is als volgt gedefinieerd:
public enum MipMode { Mip, Non_Mip }
SetEditorMode
// Retourwaarde: void
public void SetEditorMode(bool _isEditor)
Schakelt de editormodus in of uit. Dit voorbeeld roept SetEditorMode(true) aan voordat de gegevens worden geladen.
| Parameter | Type | Beschrijving |
|---|---|---|
_isEditor | bool | Of de editormodus moet worden ingeschakeld |
Gebruiksvoorbeeld:
m_manager.SetEditorMode(true);
Opmerkingen:
- Alleen ondersteund op pc- / Mac-platformen.