Guía de desarrollo para Quest 3
El flujo de trabajo de desarrollo de LCC para Quest 3 es ligeramente diferente del flujo oficial de creación de proyectos VR de Meta: las modificaciones oficiales de Meta a la configuración de Unity harán que el renderizado de LCC sea incompatible con el flujo de trabajo recomendado en su documentación de desarrollo. Consulta el flujo oficial de Meta en Configurar Unity para el desarrollo XR. Sobre la base de ese flujo, esta guía explica cómo integrar el LCC Unity SDK para renderizar escenas 3DGS.
Requisitos de versión
Las versiones de software y plugin utilizadas en esta guía son las siguientes. Se recomienda desarrollar con las mismas versiones; otras versiones no probadas pueden tener problemas de compatibilidad:
| Software / Plugin | Versión |
|---|---|
| Unity | v6000.0.69f1 |
| Meta XR All-in-One SDK | v205.0.0 |
| LCC Unity SDK | v2.1.35 y superior |
Nota:
- El Meta SDK solo admite el espacio de color Linear de URP, y las escenas LCC renderizadas en este espacio de color se verán ligeramente descoloridas.
- La versión de Unity, la versión del Meta SDK y la versión del LCC SDK afectan al renderizado y al rendimiento, así que intenta mantener cada versión de software coherente con esta guía.
Flujo de trabajo de desarrollo
Paso 1: Crear un proyecto URP
Selecciona Universal 3D en la plantilla de proyecto, como se muestra a continuación:

Crear un proyecto Universal 3D (URP)
Paso 2: Cambiar la plataforma
Una vez creado el proyecto, selecciona Archivo → Build Profiles en el menú de Unity para abrir la ventana de compilación y cambia la plataforma a Android, como se muestra a continuación:

Cambiar la plataforma a Android en Build Profiles
Paso 3: Importar Unity OpenXR
Abre la ventana UPM mediante el menú de Unity Ventana → Administrador de paquetes, selecciona Unity Registry en la lista izquierda, escribe OpenXR en el cuadro de búsqueda, selecciona OpenXR Plugin de los resultados de búsqueda e instálalo, como se muestra a continuación:

Instalar el OpenXR Plugin desde Unity Registry
Paso 4: Importar XR Interaction Toolkit
Selecciona Unity Registry en la lista izquierda, escribe XR en el cuadro de búsqueda, selecciona XR Interaction Toolkit de los resultados de búsqueda e instálalo, como se muestra a continuación:

Instalar XR Interaction Toolkit desde Unity Registry
Paso 5: Importar el Meta XR All-in-One SDK
El Meta XR All-in-One SDK es el kit de desarrollo XR de Meta; consulta Meta XR All-in-One SDK (UPM).
Antes de usar este SDK, añádelo a tus activos personales en la Unity Asset Store: https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657. A continuación, abre UPM mediante Ventana → Administrador de paquetes, selecciona My Assets a la izquierda, escribe Meta XR en el cuadro de búsqueda e instala Meta XR All-in-One SDK, como se muestra a continuación:

Instalar Meta XR All-in-One SDK desde My Assets
Paso 6: Importar el LCC Unity SDK
Abre la ventana UPM mediante el menú de Unity Ventana → Administrador de paquetes, haz clic en + a la izquierda, selecciona Instalar paquete desde disco en el menú desplegable, localiza el LCC Unity SDK y selecciona el archivo package.json para importarlo, como se muestra a continuación:

Importar el LCC Unity SDK mediante Instalar paquete desde disco
Después de completar los pasos anteriores, reinicia Unity antes de continuar con los ajustes posteriores.
Paso 7: Configurar el entorno de Unity
Configurar XR Plug-in Management
Selecciona Archivo → Ajustes del proyecto en la barra de menús de Unity, selecciona XR Plug-in Management a la izquierda y marca Initialize XR on Startup tanto en la plataforma Desktop como en Android, como se muestra a continuación:

Marcar Initialize XR on Startup en la plataforma Desktop

Marcar Initialize XR on Startup en la plataforma Android
Selecciona el elemento OpenXR bajo XR Plug-in Management y establece el Render Mode de las plataformas Desktop y Android como Multi-pass, como se muestra a continuación:

Establecer el Render Mode de OpenXR como Multi-pass
Nota: El Meta XR All-in-One SDK modificará el valor de Render Mode; asegúrate de que este valor sea Multi-pass antes de compilar.
Configurar Player (plataforma Desktop)
Selecciona Player a la izquierda de Ajustes del proyecto, cambia a la plataforma Desktop, expande la sección Other Settings, desmarca Auto Graphics API, establece Graphics APIs como Vulkan, Direct3D12, Direct3D11 y elimina las demás API gráficas; establece Color Space como Linear, como se muestra a continuación:

Establecer las API gráficas y el espacio de color Linear en la plataforma Desktop
Configurar Player (plataforma Android)
Selecciona Player a la izquierda de Ajustes del proyecto, cambia a la plataforma Android, expande la sección Other Settings, desmarca Auto Graphics API, establece Graphics APIs como Vulkan y elimina las demás API gráficas; establece Color Space como Linear (el Meta SDK solo admite el espacio de color Linear), como se muestra a continuación:

Establecer la API gráfica Vulkan y el espacio de color Linear en la plataforma Android
Establecer Company Name y Product Name
En la pestaña Player, establece Company Name y Product Name correctamente, como se muestra a continuación:

Establecer Company Name y Product Name
Establecer el backend de scripting y la entrada de la plataforma Android
Desplázate hacia abajo en la pestaña Other Settings de la plataforma Android y establece Minimum API Level = Android 12L (API Level 32) o superior, Scripting Backend = IL2CPP, Target Architectures = ARM64, Active Input Handling = Input System Package (New), como se muestra a continuación:

Establecer Minimum API Level, Scripting Backend, Target Architectures y Active Input Handling
Comprobar Gráficos y Calidad
Selecciona Gráficos a la izquierda de Ajustes del proyecto y comprueba el Render Asset correspondiente al Default Render Pipeline utilizado por la plataforma Mobile, Mobile_RPAsset en este ejemplo, como se muestra a continuación:

Comprobar el Render Asset del Default Render Pipeline en la plataforma Mobile
Selecciona Calidad a la izquierda de Ajustes del proyecto, comprueba el Render Asset correspondiente al Default Render Pipeline utilizado por la plataforma Mobile (Mobile_RPAsset en este ejemplo), establece Resolution Scaling Fixed DPI Factor = 0.7, VSync Count = Don't Sync, como se muestra a continuación:

Establecer el DPI Factor y VSync en Calidad
Configurar el Render Asset
Encuentra el Render Asset correspondiente al Default Render Pipeline utilizado por la plataforma Mobile (Mobile_RPAsset en este ejemplo). Tras hacer clic en él, el Asset se localizará en la ventana del proyecto (Proyecto). Selecciona el Asset y, a continuación, en la ventana de propiedades (Inspector): desmarca Depth Texture, Opaque Texture, HDR; establece Anti Aliasing (MSAA) = Disabled, Render Scale = 0.7, Upscaling Filter = Automatic, como se muestra a continuación:

Desactivar Depth/Opaque Texture, HDR, MSAA y establecer Render Scale = 0.7 en el Render Asset
Encuentra el Renderer correspondiente de este Render Asset, Mobile_Renderer (Universal Renderer Data) en este ejemplo, y establece sus propiedades relevantes en la ventana de propiedades (Inspector), como se muestra a continuación:

Configurar las propiedades de Mobile_Renderer (Universal Renderer Data)
Project Validation
Selecciona XR Plug-in Management a la izquierda de Ajustes del proyecto y, a continuación, selecciona Project Validation. Corrige los elementos de validación marcados en rojo: haz clic en el botón Fix a la derecha de cada elemento rojo para corregirlo; los elementos de advertencia amarillos pueden corregirse según sea necesario o dejarse sin gestionar por ahora. Antes del procesamiento, como se muestra a continuación:

Project Validation antes del procesamiento (hay elementos marcados en rojo)
Después del procesamiento, como se muestra a continuación:

Project Validation después del procesamiento (elementos en rojo corregidos)
Paso 8: Crear la escena
Este ejemplo parte de una escena completamente nueva (Scene). Después de crear una escena de Unity, elimina el GameObject Main Camera en la ventana de jerarquía (Jerarquía), luego haz clic con el botón derecho en un área vacía de la ventana y selecciona XR → XR Origin (VR) en el menú emergente, como se muestra a continuación:

Crear XR Origin (VR) mediante el menú contextual
Paso 9: Configurar la escena
Selecciona el GameObject XR Origin (VR) en la ventana de jerarquía (Jerarquía) y, en el componente XR Origin de la ventana de propiedades (Inspector), establece Tracking Origin Mode como Floor, como se muestra a continuación:

Establecer Tracking Origin Mode del XR Origin como Floor
Selecciona el GameObject Main Camera bajo XR Origin (VR) en la ventana de jerarquía (Jerarquía) y establece las propiedades de la cámara en la ventana de propiedades (Inspector):
| Propiedad | Valor recomendado | Descripción |
|---|---|---|
| Field of View | 60 | FOV |
| Clipping Planes → Near | 0.2 ~ 0.3 | Plano de recorte cercano |
| Clipping Planes → Far | 3000 ~ 5000 | Plano de recorte lejano, cubre escenas a gran escala |
| Anti-aliasing | No Anti-aliasing | Suavizado de bordes desactivado por defecto |
| Opaque Texture | Off | Desactivado por defecto |
| Depth Texture | Off | Desactivado por defecto |
| Background Type | Solid Color | Se recomienda un color sólido |
| Background | Black | Se recomienda negro como color de fondo por defecto |
| HDR Rendering | Off | Desactivado por defecto |
| MSAA | Off | Desactivado por defecto |
| URP Dynamic Resolution | Off | Desactivado por defecto |
El resto de propiedades son como se muestra a continuación:

Establecer las propiedades del componente Camera de Main Camera bajo XR Origin (VR)
Paso 10: Escribir código para cargar la escena
Haz clic con el botón derecho en Create Empty en la ventana de jerarquía (Jerarquía) para crear un objeto vacío, nómbralo LCCManager, normaliza su Transform y adjúntale el script LCCManager, como se muestra a continuación:

Crear un objeto vacío LCCManager y adjuntar el script LCCManager
Haz clic con el botón derecho en Create Empty en la ventana de jerarquía (Jerarquía) para crear otro objeto vacío, nómbralo LCCRenderer y establece su Transform Rotation.x = -90, Scale.x = -1, como se muestra a continuación:

Crear un objeto vacío LCCRenderer y establecer Rotation.x = -90 y Scale.x = -1 para alinear los sistemas de coordenadas
Rotation.x = -90 y Scale.x = -1 son la transformación de alineación del sistema de coordenadas de los datos LCC (diestro con el eje Z hacia arriba) al sistema de coordenadas de Unity (zurdo con el eje Y hacia arriba); consulta "Sistema de coordenadas de los datos LCC" en Introducción al SDK de Unity.
Escribe un script C# llamado LCCRenderer.cs con el siguiente código:
using LCCCore;
using UnityEngine;
public class LCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
void Start()
{
#if UNITY_EDITOR
m_manager.SetPlatformType(PlatformType.PC);
m_renderer = m_manager.GetRender(this.gameObject.transform);
m_renderer.Load(m_FilePath, onProgress, onLoaded);
#else
m_manager.SetPlatformType(PlatformType.Quest);
m_renderer = m_manager.GetRender(this.gameObject.transform);
m_renderer.Load(m_FilePath, onProgress, onLoaded);
//m_renderer.Load($"{Application.persistentDataPath}/LccData/meta.lcc2", onProgress, onLoaded);
#endif
}
private void onProgress(float v)
{
Debug.Log("progreso:" + v);
}
private void onLoaded()
{
m_manager.SetStartLod(2);
m_renderer.SetEnvironment(false);
Debug.Log("Datos cargados");
}
}
Adjunta el script al GameObject LCCRenderer en la ventana de jerarquía (Jerarquía), arrastra el GameObject LCCManager a la propiedad Manager del script en la ventana de propiedades (Inspector) y, por último, rellena la ruta del archivo LCC; a continuación, compila y ejecuta.

Adjuntar el script LCCRenderer al objeto y vincular Manager y la ruta del archivo
Para facilitar la depuración en el Editor de Unity y la compilación directa en un dispositivo Android, el código usa macros de compilación para distinguir el entorno de ejecución: usa la plataforma PC en el Editor de Unity y la plataforma Quest en un dispositivo Quest.
Para los dispositivos Quest, se recomienda colocar la fuente de datos en un servidor; durante las pruebas también puedes usar la fuente de datos directamente en el dispositivo. Los pasos específicos son:
- Ejecuta la aplicación compilada una vez en el dispositivo Quest.
- Una vez instalada la aplicación, entra en su directorio de datos (generalmente almacenamiento del dispositivo Quest → Android → data → BundleID de la app → Files; consulta la ruta de instalación de aplicaciones Android para el directorio específico) y crea una carpeta
LccDatabajo el subdirectorio Files. - Copia todas las fuentes de datos LCC en la carpeta
LccData.
Nota:
- En la práctica, se recomienda colocar la fuente de datos de la aplicación Quest en un servidor en lugar de empaquetarla directamente en la aplicación.
- La capacidad de renderizado en pantalla del dispositivo Quest 3 para 3DGS es de aproximadamente 700 000 primitivas gaussianas, aproximadamente dos órdenes de magnitud inferior a la capacidad del lado PC de aproximadamente 25 millones. Se recomienda principalmente para renderizar y mostrar escenas pequeñas y objetos individuales; las escenas grandes serán más fluidas con streaming desde PC.
- Al renderizar escenas LCC grandes, se recomienda establecer StartLOD en
2y desactivar la visualización de los datos de entorno (como se muestra en el código de ejemplo).
Referencia relacionada
- Para la configuración del proyecto y la optimización del rendimiento, consulta los capítulos Guía de optimización de ajustes del proyecto y Guía de parámetros de rendimiento de renderizado.
- Para otros flujos de trabajo de desarrollo de Meta, consulta la documentación oficial: Documentación para desarrolladores de Meta.
- Durante el desarrollo de Quest, establece el Render Mode de la plataforma Desktop como Multi-pass en Ajustes del proyecto → OpenXR; de lo contrario, las escenas LCC no pueden renderizarse con normalidad en Unity (incluidos tanto el Editor como el Runtime).