Guía de desarrollo de renderizado mixto de varias escenas
El renderizado mixto de varias escenas significa crear varias escenas LCC al mismo tiempo y mezclar su renderizado en tiempo real para lograr una oclusión y una mezcla correctas. Para controlar de forma independiente cada escena LCC que participa en el renderizado, debes crear varios Renderers y adjuntar cada Renderer a un GameObject independiente, de modo que el Transform de cada escena LCC pueda controlarse de forma independiente.
Paso 1: Crear la escena y los GameObjects
Crea una escena completamente nueva en Unity. Unity crea Main Camera y Directional Light por defecto.
Crear LCCManager
Haz clic con el botón derecho en un área vacía de la ventana Jerarquía, selecciona Create Empty en el menú emergente para crear un GameObject vacío, nómbralo LCCManager, normaliza su Transform y añádele el script LCCManager mediante Agregar componente.

Crear el GameObject LCCManager y añadir el script LCCManager
Crear LCCRenderer01
Haz clic con el botón derecho en un área vacía de la ventana Jerarquía, selecciona Create Empty para crear un GameObject vacío, nómbralo LCCRenderer01 y establece su Transform como Rotation.x = -90 y Scale.x = -1.

Crear LCCRenderer01 y establecer su Transform (Rotation.x = -90, Scale.x = -1)
Crear LCCRenderer02
Crea otro GameObject vacío de la misma forma, nómbralo LCCRenderer02 y establece también su Transform como Rotation.x = -90 y Scale.x = -1.

Crear LCCRenderer02 y establecer su Transform (Rotation.x = -90, Scale.x = -1)
Nota:
Los ajustes de Transform del GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) lo alinean con el sistema de coordenadas de los datos LCC. Para más detalles sobre la alineación del sistema de coordenadas, consulta "Sistema de coordenadas de los datos LCC" en Introducción al SDK de Unity.
Paso 2: Escribir el script de renderizado de varias escenas
Crea un nuevo script C# llamado MultiRenderer.cs con el siguiente código:
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);
// Cambia al modo MultiRender para permitir que varios Renderers estén activos y mezclados al mismo tiempo
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);
Debug.Log("Iniciado ");
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] archivo {m_currentFileIndex} progreso de carga: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] archivo {m_currentFileIndex} cargado");
}
}
Paso 3: Adjuntar el script y configurar las propiedades
- Adjunta el script
MultiRenderer.csal GameObject LCCManager en la ventana Jerarquía. - En la ventana Inspector, asigna las referencias y rutas según la tabla siguiente:
| Propiedad del script | Asignación |
|---|---|
| Manager | Arrastra el GameObject LCCManager a esta propiedad |
| Transform01 | Arrastra el GameObject LCCRenderer01 a esta propiedad |
| Transform02 | Arrastra el GameObject LCCRenderer02 a esta propiedad |
| File Path01 | Ruta de la primera fuente de datos LCC |
| File Path02 | Ruta de la segunda fuente de datos LCC |

Configurar las referencias y rutas de datos del script MultiRenderer en el Inspector
Paso 4: Ejecutar
Haz clic en el botón Play de la ventana Game y verás las dos escenas LCC renderizadas y mezcladas simultáneamente. Cambia los valores de Transform del GameObject LCCRenderer01 o LCCRenderer02, y cada escena renderizada se actualiza en tiempo real.

Dos escenas LCC renderizadas y mezcladas simultáneamente tras la ejecución
Puntos clave
Hay dos puntos clave para desarrollar el renderizado mixto de varias escenas LCC:
- Cambiar al modo MultiRender: usa
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);para permitir mezclar varias escenas LCC. El modo por defecto esSingleRender, que no permite mezclar varias escenas LCC. - Adjuntar cada Renderer a un GameObject independiente: usa
GetRender(Transform)para vincular cada Renderer a un GameObject independiente, de modo que el Transform de cada escena LCC pueda controlarse de forma independiente.