Guía de Business Streaming para Pico 4 Ultra
El Business Streaming de Pico 4 Ultra renderiza el proyecto de Unity en el PC y lo transmite al dispositivo para su exploración e interacción mediante la herramienta Business Streaming oficial de PICO, aprovechando así la potencia de cómputo del PC para lograr un rendimiento superior al del renderizado en el dispositivo. Esta guía explica cómo integrar el LCC Unity SDK y completar el desarrollo de streaming con Business Streaming.
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 | Descripción |
|---|---|---|
| Unity | v6000.0.69f1 y superior | Usa Unity 6 |
| OpenXR | 1.61.1 y superior | Unity OpenXR Plugin, instalado desde Unity Registry |
| LCC Unity SDK | v2.3.0 y superior | Obtenlo desde la página de descarga del LCC Unity SDK |
| Business Streaming | v2.2.0 y superior | Obtenlo desde PICO oficial |
Nota:
- Business Streaming se conecta mediante OpenXR, lo que es diferente de la Guía de desarrollo para Pico 4 Ultra que usa el PICO Unity Integration SDK; no los confundas.
- La versión de Unity, la versión de OpenXR 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: Requisitos previos
Descarga e instala Business Streaming v2.2.0 o superior tanto en el equipo desde el que se va a transmitir como en el dispositivo Pico 4 Ultra; se recomienda reiniciar el equipo una vez después de la instalación.
Paso 2: Crear un proyecto URP
Selecciona el tipo Universal 3D (pipeline de renderizado URP) en la plantilla de proyecto, como se muestra a continuación:

Crear un proyecto Universal 3D
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 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
Nota: Después de completar los pasos anteriores, reinicia Unity antes de continuar con los ajustes posteriores.
Paso 5: 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, marca Initialize XR on Startup bajo la pestaña PC, Mac & Linux Standalone Settings y marca OpenXR como Plug-in Provider, como se muestra a continuación:

Marcar Initialize XR on Startup y OpenXR en XR Plug-in Management
Nota: Si aparece un icono de advertencia amarillo después de OpenXR, haz clic en Fix All para corregirlo todo.
Selecciona el elemento OpenXR bajo XR Plug-in Management y establece Render Mode como Single Pass Instanced o Multi Pass según sea necesario; en general Single Pass Instanced ofrece un mejor rendimiento, y el resto de ajustes se mantienen en sus valores por defecto, como se muestra a continuación:

Establecer el Render Mode de OpenXR como Single Pass Instanced o Multi Pass
Configurar las API gráficas
Abre el panel de ajustes mediante Editar → Ajustes del proyecto → Player, selecciona el elemento Otros bajo la pestaña de la plataforma correspondiente y configura las API gráficas por plataforma:
| Plataforma | Acción |
|---|---|
| Windows | Desmarca Auto Graphics API for Windows y añade DirectX12, Vulkan y DirectX11 como las tres API gráficas |
| macOS | Desmarca Auto Graphics API for Mac y mantén la API gráfica Metal |
| Linux | Desmarca Auto Graphics API for Linux y mantén la API gráfica Vulkan |
Nota: En la plataforma Windows, se recomienda usar DirectX12 o Vulkan, que ofrecen un mejor rendimiento; para DirectX11, se recomienda habilitar el renderizado HDR para evitar artefactos de renderizado.
Paso 6: Crear la escena
Este ejemplo parte de una Scene completamente nueva. Crea una escena de Unity (Scene), haz clic con el botón derecho en un área vacía de la ventana de jerarquía (Jerarquía) y selecciona XR → Convert Main Camera To XR Rig en el menú emergente para convertir Main Camera en una cámara XR.
Paso 7: Configurar la escena
Selecciona el GameObject XR Rig en la ventana de jerarquía (Jerarquía) y, en la ventana de propiedades (Inspector), establece el Request Tracking Mode de la propiedad Camera Offset como Floor, como se muestra a continuación:
Establecer Request Tracking Mode de Camera Offset del XR Rig como Floor
Selecciona el GameObject XR Rig → Camera Offset → Main Camera en la ventana de jerarquía (Jerarquía) y establece las propiedades del componente Camera en la ventana de propiedades (Inspector): Clipping Planes Near = 0.3, Far = 5000; Anti-aliasing = No Anti-aliasing; Opaque Texture = Off, Depth Texture = Off; Background Type = Solid Color, Background = negro; HDR Rendering = Off, MSAA = Off, URP Dynamic Resolution = Off, como se muestra a continuación:

Establecer las propiedades del componente Camera de Main Camera bajo XR Rig
Paso 8: 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 adjunta el script LCCManager mediante Agregar componente, 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;
[DefaultExecutionOrder(100)]
public class LCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
private Camera m_mainCamera;
private bool m_isLoaded = false;
void Start()
{
m_mainCamera = Camera.main;
// establece el tipo de plataforma a PCVR
m_manager.SetPlatformType(PlatformType.PCVR);
m_manager.SetMainCamera(m_mainCamera);
m_manager.SetLockFPS(false);
//Establece el splat de renderizado completo en 15 millones, lo que significa que LCC LOD0 > 15 millones pasará a la ruta de renderizado por fragmentos.
//m_manager.SetFullRenderSplat(1500);
//Establece el splat de renderizado máximo en 15 millones, lo que significa que el límite máximo de splats en pantalla es de 15 millones en la ruta de renderizado por fragmentos.
//m_manager.SetMaxRenderSplats(1500);
m_renderer = m_manager.GetRender(this.transform);
if (m_renderer == null)
Debug.LogError("Error en GetRender, comprueba que el manager esté configurado correctamente y que la ruta del archivo sea válida.");
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback, onError);
}
private void onLoadProgress(float value)
{
Debug.Log($"progreso de carga: {value}");
}
private void onLoadCallback()
{
//Establece el LOD inicial en 2, lo que significa que el renderizado inicial estará en el nivel LOD2.
//m_manager.SetStartLod(2);
Debug.Log("datos cargados !!!");
m_isLoaded = true;
}
private void onError(string error)
{
Debug.LogError($"error de carga: {error}");
}
}
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.
Después de completar la configuración anterior, la estructura de la escena en la ventana de jerarquía (Jerarquía) es como se muestra a continuación:

La estructura de la escena después de la configuración
Nota: La escena debe mantener la Directional Light, el Global Volume y otros objetos creados por defecto en el proyecto URP.
Paso 9: Configurar Business Streaming
Inicia Business Streaming en el equipo, selecciona Settings → General y establece Default Streaming Type como OpenXR Streaming, como se muestra a continuación:

Establecer Default Streaming Type de Business Streaming como OpenXR Streaming
Paso 10: Iniciar el streaming
- Conecta el Pico 4 Ultra al equipo mediante USB 3.0 o Wi-Fi de alta velocidad.
- Abre Business Streaming en el dispositivo Pico 4 Ultra y conéctate al equipo.
- Haz clic en el botón Play del Editor de Unity para ejecutar, o abre la aplicación publicada, para iniciar el streaming.
Nota:
- Para usar el software Business Streaming, consulta la documentación oficial de PICO: https://business.picoxr.com/cn/doc/Business-Streamingv2.
- Para los ajustes del proyecto, consulta la Guía de optimización de ajustes del proyecto.
- El streaming requiere hardware de PC de gama alta (especialmente la tarjeta gráfica); usa un equipo de alto rendimiento para el streaming y usa USB 3.0 o Wi-Fi de alta velocidad.
- El streaming PCVR renderiza dos veces (el modo SPI también tiene una sobrecarga de vértices duplicada), por lo que el rendimiento y la tasa de fotogramas pueden mejorarse configurando el renderizado completo/por fragmentos, la cantidad máxima de renderizado en pantalla, el nivel de LOD inicial, etc.; para la configuración de parámetros, consulta la Guía de parámetros de rendimiento de renderizado.
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 el flujo de trabajo de renderizado en el dispositivo con el PICO Unity Integration SDK, consulta la Guía de desarrollo para Pico 4 Ultra.
- Para otras instrucciones de uso de Business Streaming, consulta la documentación oficial de PICO: Business Streaming.