Guida allo sviluppo del rendering misto multi-scena
Il rendering misto multi-scena significa creare più scene LCC contemporaneamente e mescolare il loro rendering in tempo reale per ottenere un'occlusione e una fusione corrette. Per controllare in modo indipendente ogni scena LCC che partecipa al rendering, è necessario creare più Renderer e associare ogni Renderer a un GameObject indipendente, in modo che il Transform di ogni scena LCC possa essere controllato in modo indipendente.
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.
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 LCCRenderer01
Fai clic con il pulsante destro su un'area vuota nella finestra Gerarchia, seleziona Crea vuoto per creare un GameObject vuoto, assegna il nome LCCRenderer01 e imposta il suo Transform su Rotation.x = -90 e Scale.x = -1.

Crea LCCRenderer01 e imposta il suo Transform (Rotation.x = -90, Scale.x = -1)
Crea LCCRenderer02
Crea un altro GameObject vuoto nello stesso modo, assegna il nome LCCRenderer02 e imposta anche il suo Transform su Rotation.x = -90 e Scale.x = -1.

Crea LCCRenderer02 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.
Passaggio 2: scrivi lo script di rendering multi-scena
Crea un nuovo script C# denominato MultiRenderer.cs con il seguente codice:
using LCCCore;
using UnityEngine;
public class MultiRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath01;
public Transform m_transform01;
public string m_FilePath02;
public Transform m_transform02;
private LCCCore.Renderer m_renderer01;
private LCCCore.Renderer m_renderer02;
private int m_currentFileIndex = 0;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
// Passa alla modalità MultiRender per consentire a più Renderer di essere attivi e mescolati contemporaneamente
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);
Debug.Log("Avviato ");
m_renderer01 = m_manager.GetRender(m_transform01);
m_renderer02 = m_manager.GetRender(m_transform02);
m_currentFileIndex = 0;
m_renderer01.Load(m_FilePath01, onProgress, onComplete);
m_currentFileIndex = 1;
m_renderer02.Load(m_FilePath02, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"[LCCRenderer] file {m_currentFileIndex} avanzamento caricamento: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] file {m_currentFileIndex} caricato");
}
}
Passaggio 3: associa lo script e configura le proprietà
- Associa lo script
MultiRenderer.csal GameObject LCCManager nella finestra Gerarchia. - Nella finestra Inspector, assegna i riferimenti e i percorsi secondo la tabella seguente:
| Proprietà dello script | Assegnazione |
|---|---|
| Manager | Trascina il GameObject LCCManager su questa proprietà |
| Transform01 | Trascina il GameObject LCCRenderer01 su questa proprietà |
| Transform02 | Trascina il GameObject LCCRenderer02 su questa proprietà |
| File Path01 | Percorso della prima origine dati LCC |
| File Path02 | Percorso della seconda origine dati LCC |

Configura i riferimenti e i percorsi dati dello script MultiRenderer nell'Inspector
Passaggio 4: esegui
Fai clic sul pulsante Play nella finestra Game e vedrai le due scene LCC renderizzate e mescolate simultaneamente. Modifica i valori Transform del GameObject LCCRenderer01 o LCCRenderer02 e ogni scena renderizzata si aggiorna in tempo reale.

Due scene LCC renderizzate e mescolate simultaneamente dopo l'esecuzione
Punti chiave
Ci sono due punti chiave per lo sviluppo del rendering misto di più scene LCC:
- Passa alla modalità MultiRender: usa
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);per consentire di mescolare più scene LCC. L'impostazione predefinita è la modalitàSingleRender, che non consente di mescolare più scene LCC. - Associa ogni Renderer a un GameObject indipendente: usa
GetRender(Transform)per associare ogni Renderer a un GameObject indipendente, in modo che il Transform di ogni scena LCC possa essere controllato in modo indipendente.