Guide de développement du basculement du mode de rendu Mip
Mip et Non-Mip sont deux chemins techniques de reconstruction et de rendu du 3DGS. L'effet de rendu est optimal lorsque la reconstruction et le rendu utilisent le même chemin technique. Le LCC Unity SDK prend en charge le basculement dynamique du mode de rendu à l'exécution ; les étapes complètes sont décrites ci-dessous.
Étape 1 : Créer la scène et les GameObjects
Créez une toute nouvelle scène dans Unity. Unity crée Caméra principale et Lumière directionnelle par défaut.
Configurer la Caméra principale
Sélectionnez Caméra principale dans la fenêtre Hiérarchie, et définissez ses propriétés dans la fenêtre Inspecteur comme illustré ci-dessous.

Définir les propriétés de la Caméra principale
Créer LCCManager
Faites un clic droit dans une zone vide de la fenêtre Hiérarchie, sélectionnez Créer vide dans le menu contextuel pour créer un GameObject vide, nommez-le LCCManager, normalisez son Transform, et ajoutez-y le script LCCManager via Ajouter un composant.

Créer le GameObject LCCManager et ajouter le script LCCManager
Créer LCCRenderer
Faites un clic droit dans une zone vide de la fenêtre Hiérarchie, sélectionnez Créer vide pour créer un GameObject vide, nommez-le LCCRenderer, et définissez son Transform sur Rotation.x = -90 et Scale.x = -1.

Créer LCCRenderer et définir son Transform (Rotation.x = -90, Scale.x = -1)
Remarque :
Les réglages de Transform du GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) l'alignent avec le système de coordonnées des données LCC. Pour plus de détails sur l'alignement du système de coordonnées, voir « Système de coordonnées des données LCC » dans Introduction au SDK Unity.
Créer le bouton de bascule
Faites un clic droit dans une zone vide de la fenêtre Hiérarchie, sélectionnez UI → Bouton dans le menu contextuel pour créer un Bouton nommé BtnMipSwitch.
Étape 2 : Écrire un script pour basculer le mode de rendu
Créez un nouveau script C# nommé MipSwitch.cs avec le code suivant :
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("Démarré ");
// Nécessite d'entrer en mode Édition
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] progression du chargement du fichier : {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] fichier chargé");
}
private void onMipSwitch()
{
if (m_mipMode == MipMode.Mip)
{
m_mipMode = MipMode.Non_Mip;
}
else
{
m_mipMode = MipMode.Mip;
}
m_manager.SetMipMode(m_mipMode);
}
}
Remarque :
Cet exemple s'initialise à
MipMode.MipdansStartet lie l'événement de clic pour BtnMipSwitch ; chaque clic bascule entreMipetNon_Mip, et prend effet immédiatement viaSetMipMode().
Étape 3 : Attacher le script et définir les propriétés
- Attachez le script
MipSwitch.csau GameObject LCCManager dans la fenêtre Hiérarchie. - Dans la fenêtre Inspecteur, faites glisser le GameObject LCCManager sur la propriété Manager du script.
- Renseignez le chemin du fichier LCC dans la propriété File Path du script.
- Faites glisser le bouton BtnMipSwitch sur la propriété Btn Mip Switch du script.

Attacher le script MipSwitch et définir les propriétés Manager, File Path et BtnMipSwitch
Étape 4 : Exécuter
Cliquez sur le bouton Play dans la fenêtre Jeu, puis cliquez sur le bouton BtnMipSwitch pour voir le rendu de la scène basculer entre les modes Mip et Non-Mip en temps réel.

Cliquer sur le bouton bascule le mode de rendu Mip / Non-Mip en temps réel après l'exécution
Recommandations de sélection
- L'effet de rendu n'est optimal que lorsque la reconstruction du 3DGS et le rendu du 3DGS utilisent le même chemin technique.
- Après le passage en mode Non-Mip, les détails de rendu sont généralement meilleurs, mais les performances de rendu sont affectées dans une certaine mesure.
API liées au mode Mip
Le LCC Unity SDK fournit les API suivantes liées au basculement du mode de rendu Mip via LCCManager.
SetMipMode
// Valeur de retour : void
public void SetMipMode(MipMode _mipMode)
Bascule le mode de rendu Mip. Le mode Mip utilise l'échantillonnage mipmap (par défaut), et le mode Non_Mip désactive le mipmap.
| Paramètre | Type | Description |
|---|---|---|
_mipMode | MipMode | Mode cible, soit Mip soit Non_Mip |
Exemple d'utilisation :
m_manager.SetMipMode(MipMode.Non_Mip); // désactiver le mipmap
m_manager.SetMipMode(MipMode.Mip); // restaurer le mipmap
Remarques :
- Si le mode actuel est le même que le mode transmis, il retourne directement sans surcoût répété.
L'enum MipMode est défini comme suit :
public enum MipMode { Mip, Non_Mip }
SetEditorMode
// Valeur de retour : void
public void SetEditorMode(bool _isEditor)
Active/désactive le mode éditeur. Cet exemple appelle SetEditorMode(true) avant de charger les données.
| Paramètre | Type | Description |
|---|---|---|
_isEditor | bool | S'il faut activer le mode éditeur |
Exemple d'utilisation :
m_manager.SetEditorMode(true);
Remarques :
- Pris en charge uniquement sur les plateformes PC / Mac.