Mip 渲染模式切換開發指南
Mip 與 Non-Mip 是兩種重建和渲染 3DGS 的技術路徑。重建與渲染使用同一種技術路徑時渲染效果最好。LCC Unity SDK 支持在運行時動態切換渲染模式,下面介紹完整步驟。
步驟 1:創建場景與遊戲對象
在 Unity 中創建一個全新的場景,Unity 默認會創建 Main Camera 和 Directional Light。
設置 Main Camera
在 Hierarchy 窗口中選擇 Main Camera,在 Inspector 窗口中按下圖設置其屬性。

設置 Main Camera 的屬性
創建 LCCManager
在 Hierarchy 窗口空白處單擊鼠標右鍵,在彈出的菜單中選擇 Create Empty,創建一個空遊戲對象,命名為 LCCManager,將其 Transform 歸一,並通過 Add Component 為其添加 LCCManager 腳本。

創建 LCCManager 遊戲對象並添加 LCCManager 腳本
創建 LCCRenderer
在 Hierarchy 窗口空白處單擊鼠標右鍵,選擇 Create Empty,創建一個空遊戲對象,命名為 LCCRenderer,將其 Transform 設置為 Rotation.x = -90、Scale.x = -1。

創建 LCCRenderer 並設置 Transform(Rotation.x = -90、Scale.x = -1)
注意:
LCCRenderer 遊戲對象的 Transform 設置(Rotation.x = -90、Scale.x = -1)是與 LCC 數據座標系的對齊。關於座標系對齊的詳細說明,參見 Unity SDK 簡介 中的「LCC 數據座標系」。
創建切換按鈕
在 Hierarchy 窗口空白處單擊鼠標右鍵,在彈出的菜單中選擇 UI → Button,創建一個 Button 按鈕,命名為 BtnMipSwitch。
步驟 2:編寫腳本切換渲染模式
新建一個 C# 腳本,命名為 MipSwitch.cs,代碼如下:
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("Started ");
// 需要進入到Edit模式
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] file load progress: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] file loaded");
}
private void onMipSwitch()
{
if (m_mipMode == MipMode.Mip)
{
m_mipMode = MipMode.Non_Mip;
}
else
{
m_mipMode = MipMode.Mip;
}
m_manager.SetMipMode(m_mipMode);
}
}
注意:
本示例在
Start中初始化為MipMode.Mip,並為 BtnMipSwitch 綁定點擊事件;每次點擊在Mip與Non_Mip之間切換,並通過SetMipMode()立即生效。
步驟 3:掛載腳本並設置屬性
- 將
MipSwitch.cs腳本掛載到 Hierarchy 窗口中的 LCCManager 遊戲對象上。 - 在 Inspector 窗口中,將 LCCManager 遊戲對象拖動到腳本的 Manager 屬性上。
- 在腳本的 File Path 屬性中填寫 LCC 文件的路徑地址。
- 將 BtnMipSwitch 按鈕拖動到腳本的 Btn Mip Switch 屬性上。

掛載 MipSwitch 腳本並設置 Manager、File Path 與 BtnMipSwitch 屬性
步驟 4:運行
在 Game 窗口中點擊 Play 按鈕,然後點擊 BtnMipSwitch 按鈕,即可看到場景渲染在 Mip 與 Non-Mip 模式之間實時切換的效果。

運行後點擊按鈕實時切換 Mip / Non-Mip 渲染模式
選型建議
- 只有當重建 3DGS 與渲染 3DGS 使用同一種技術路徑時,渲染效果最好。
- 切換到 Non-Mip 模式後,通常渲染細節表現更好,但渲染性能會有一定程度的影響。
Mip 相關 API
LCC Unity SDK 通過 LCCManager 提供了以下與 Mip 渲染模式切換相關的 API。
SetMipMode
// 返回值:void
public void SetMipMode(MipMode _mipMode)
切換 Mip 渲染模式。Mip 模式使用 mipmap 採樣(默認),Non_Mip 模式禁用 mipmap。
| 參數 | 類型 | 說明 |
|---|---|---|
_mipMode | MipMode | 目標模式,取值 Mip 或 Non_Mip |
調用示例:
m_manager.SetMipMode(MipMode.Non_Mip); // 禁用 mipmap
m_manager.SetMipMode(MipMode.Mip); // 恢復 mipmap
說明:
- 若當前模式與傳入模式相同則直接返回,無重複開銷。
MipMode 枚舉定義如下:
public enum MipMode { Mip, Non_Mip }
SetEditorMode
// 返回值:void
public void SetEditorMode(bool _isEditor)
開關編輯器模式。本示例在加載數據前調用 SetEditorMode(true)。
| 參數 | 類型 | 說明 |
|---|---|---|
_isEditor | bool | 是否開啟編輯器模式 |
調用示例:
m_manager.SetEditorMode(true);
說明:
- 僅 PC / Mac 平台支持。