Ontwikkelgids voor gemengde rendering van meerdere scènes
Gemengde rendering van meerdere scènes betekent dat je meerdere LCC-scènes tegelijk aanmaakt en de rendering ervan in realtime mengt om correcte occlusie en blending te bereiken. Om elke LCC-scène die deelneemt aan de rendering onafhankelijk te kunnen beheren, moet je meerdere Renderers aanmaken en elke Renderer aan een onafhankelijk GameObject koppelen, zodat de Transform van elke LCC-scène onafhankelijk kan worden beheerd.
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.
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
LCCRenderer01 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 LCCRenderer01 en stel de Transform in op Rotation.x = -90 en Scale.x = -1.

Maak LCCRenderer01 aan en stel de Transform in (Rotation.x = -90, Scale.x = -1)
LCCRenderer02 aanmaken
Maak op dezelfde manier nog een leeg GameObject aan, geef het de naam LCCRenderer02 en stel de Transform eveneens in op Rotation.x = -90 en Scale.x = -1.

Maak LCCRenderer02 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.
Stap 2: Het script voor rendering van meerdere scènes schrijven
Maak een nieuw C#-script aan met de naam MultiRenderer.cs met de volgende code:
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);
// Schakel over naar de MultiRender-modus zodat meerdere Renderers tegelijk actief kunnen zijn en kunnen worden gemengd
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);
Debug.Log("Gestart ");
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] bestand {m_currentFileIndex} laadvoortgang: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] bestand {m_currentFileIndex} geladen");
}
}
Stap 3: Het script toevoegen en eigenschappen configureren
- Voeg het
MultiRenderer.cs-script toe aan het LCCManager-GameObject in het Hiërarchie-venster. - Wijs in het Inspector-venster de verwijzingen en paden toe volgens de onderstaande tabel:
| Scripteigenschap | Toewijzing |
|---|---|
| Manager | Sleep het LCCManager-GameObject naar deze eigenschap |
| Transform01 | Sleep het LCCRenderer01-GameObject naar deze eigenschap |
| Transform02 | Sleep het LCCRenderer02-GameObject naar deze eigenschap |
| File Path01 | Pad van de eerste LCC-gegevensbron |
| File Path02 | Pad van de tweede LCC-gegevensbron |

Configureer de verwijzingen en gegevenspaden van het MultiRenderer-script in de Inspector
Stap 4: Uitvoeren
Klik op de knop Play in het Game-venster en je ziet de twee LCC-scènes gelijktijdig gerenderd en gemengd. Wijzig de Transform-waarden van het LCCRenderer01- of LCCRenderer02-GameObject en elke gerenderde scène wordt in realtime bijgewerkt.

Twee LCC-scènes die na het uitvoeren gelijktijdig worden gerenderd en gemengd
Kernpunten
Er zijn twee kernpunten voor het ontwikkelen van gemengde rendering van meerdere LCC-scènes:
- Schakel over naar de MultiRender-modus: gebruik
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);zodat meerdere LCC-scènes kunnen worden gemengd. De standaard is deSingleRender-modus, waarin meerdere LCC-scènes niet kunnen worden gemengd. - Koppel elke Renderer aan een onafhankelijk GameObject: gebruik
GetRender(Transform)om elke Renderer aan een onafhankelijk GameObject te binden, zodat de Transform van elke LCC-scène onafhankelijk kan worden beheerd.