XGRIDSDocumentación
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Serie Lixel PortalCam

    • PortalCam P1

      • Descripción del producto
      • Operaciones básicas
      • Uso de la LCC Scan App
      • Mantenimiento y cuidado
      • FAQ
  • Serie Lixel K

    • Lixel K1

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
    • Lixel K2

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Punto de medición
      • Apéndice
      • FAQ
    • Lixel L3

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Apéndice
  • Accesorios

    • Stick Light

      • Guía de instalación
      • Operaciones básicas
      • Preguntas frecuentes
  • Lixel Studio

    • Versión y derechos de autor
    • Instalación y activación
    • Interfaz del software
    • Operaciones de archivo
    • Procesamiento de proyectos
    • Herramientas
    • Dibujo 2D
    • Aplicaciones
    • Ajustes
    • Conexión de dispositivo
    • Preguntas Frecuentes
  • Lixel CyberColor

    • LCC Studio

      • Primeros pasos
      • Versión y actualizaciones
      • Descarga e instalación
      • Descripción general de la interfaz y navegación
      • Antes de la reconstrucción
      • Reconstrucción de modelos
      • Reconstrucción de modelo único
      • Fusión de mapas
      • Fusión aire-tierra
      • Reconstrucción aérea
      • Mis modelos
      • Otras funciones
      • Ajustes y cuenta
      • Converter
      • Reconstrucción por vídeo
      • Preguntas frecuentes
    • LCC Scene Editor

      • Versión y actualizaciones
      • Cuenta e inicio de sesión
      • Descripción general del producto y página de inicio
      • Interfaz del editor
      • Modos de navegación
      • Archivo
      • Configuración
      • Editar
      • Ventana
      • Barra de herramientas global
      • Activos y propiedades
      • Barra de herramientas izquierda
      • Puntos de vista
      • Portal
      • Skybox
      • Anotaciones
      • Medición
      • Flythrough
      • Informe de escena
      • 3D Layout
      • Minimapa
      • Modo Vista previa (Viewer)
      • Ayuda
      • Preguntas frecuentes (FAQ)
      • Punto de inicio
    • LCC Model Editor

      • Versión y actualizaciones
      • Guía del usuario
      • Visión general e interfaz
      • Operaciones de archivo
      • Selectores
      • Edición de modelos
      • Medición
      • Corrección de color
      • Gestión de activos
      • Configuración y ayuda
      • Preguntas frecuentes
    • Capture Guide

      • Descripción general
      • Descripción general de los dispositivos de captura
      • Principios generales de captura
      • Captura de escenas interiores
      • Captura de escenas exteriores
      • Captura a gran escala (Map Fusion)
      • Captura con aerial-ground map fusion
      • Captura de objetos
      • Captura de personas
      • Captura para reconstrucción a partir de vídeo
      • HD Enhancement
      • Puntos de control (Lixel P1)
      • Preguntas frecuentes y resolución de problemas
    • Buenas Prácticas

      • Fusión de varios modelos 3DGS de gran tamaño
    • Historial de versiones
  • Plugins y SDK

    • Unreal

      • Introducción
      • Inicio rápido - Windows
      • Inicio rápido - Linux
      • Inicio rápido - Quest3
      • Ediciones y licencias
      • Renderizado
      • Rasterización Tiled (experimental)
      • Ajustes visuales
      • Normales e iluminación
      • Edición de escenas
      • Parámetros de rendimiento
      • Guía de rendimiento
      • Integración con plugins de terceros y del motor
      • Proxy Mesh
      • Animación de carga
      • Colisión
      • Compatibilidad con Navigation System
      • Compatibilidad con Single Layer Water
      • Localización
      • Preguntas frecuentes
      • Resolución de problemas
      • Logs y diagnóstico
      • Contacto
      • Buenas prácticas

        • Reiluminar 3DGS con una malla de LixelStudio
      • Referencia de API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enumeraciones
        • Structs
      • Registro de cambios

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Introducción al SDK de Unity
      • Funciones técnicas
      • Requisitos del entorno de desarrollo
      • Guía de inicio rápido para PC
      • Guía de optimización de ajustes del proyecto
      • Guía de desarrollo para Pico 4 Ultra
      • Guía de streaming desde PC para Pico 4 Ultra
      • Guía de desarrollo para Quest 3
      • Guía de streaming desde PC para Quest 3
      • Guía de desarrollo con OpenXR
      • Guía de Business Streaming para Pico 4 Ultra
      • Glosario
      • Preguntas frecuentes
      • Contáctanos
      • Guía de desarrollo de funciones

        • Guía de desarrollo de renderizado mixto de varias escenas
        • Guía de desarrollo de recepción de sombras
        • Guía de desarrollo de iluminación en tiempo real
        • Guía de desarrollo de renderizado multicámara
        • Guía de desarrollo de renderizado de imágenes de alta resolución
        • Guía de desarrollo de compatibilidad de formatos de datos LCC y LCC2
        • Guía de desarrollo del efecto de carga
        • Guía de desarrollo de cambio de modo de renderizado Mip
        • Guía de desarrollo de ajuste a bordes y esquinas
        • Guía de desarrollo de decal proyectado
        • Guía de desarrollo de decal proyectado de vídeo
        • Guía de desarrollo de resaltado
        • Guía de desarrollo de recorte en tiempo real
        • Guía de desarrollo de ajuste de color
        • Guía de desarrollo para obtener los datos de malla de la escena
        • Guía de desarrollo del modo Editor
        • Guía de configuración de parámetros de rendimiento de renderizado
        • Guía de desarrollo de co-empaquetado de aplicación y datos
        • Guía de desarrollo del sistema de colisiones
        • Guía de problemas de permisos de desarrollo en macOS
        • Guía de desarrollo de compilación y empaquetado para dispositivos iOS
      • Referencia de API

        • LCCManager
        • Renderer
        • Tipos de datos
      • Registro de cambios

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • Introducción
      • Guía de optimización del rendimiento de renderizado
      • Configuración de gráficos
      • Preguntas frecuentes
      • Referencia de API

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • Registro de cambios

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

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 / PluginVersiónDescripción
Unityv6000.0.69f1 y superiorUsa Unity 6
OpenXR1.61.1 y superiorUnity OpenXR Plugin, instalado desde Unity Registry
LCC Unity SDKv2.3.0 y superiorObtenlo desde la página de descarga del LCC Unity SDK
Business Streamingv2.2.0 y superiorObtenlo desde PICO oficial

Nota:

  1. 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.
  2. 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

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

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

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

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

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:

PlataformaAcción
WindowsDesmarca Auto Graphics API for Windows y añade DirectX12, Vulkan y DirectX11 como las tres API gráficas
macOSDesmarca Auto Graphics API for Mac y mantén la API gráfica Metal
LinuxDesmarca 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

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

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

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 el Transform para alinear el sistema de coordenadas

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

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

Establecer Default Streaming Type de Business Streaming como OpenXR Streaming

Paso 10: Iniciar el streaming

  1. Conecta el Pico 4 Ultra al equipo mediante USB 3.0 o Wi-Fi de alta velocidad.
  2. Abre Business Streaming en el dispositivo Pico 4 Ultra y conéctate al equipo.
  3. Haz clic en el botón Play del Editor de Unity para ejecutar, o abre la aplicación publicada, para iniciar el streaming.

Nota:

  1. Para usar el software Business Streaming, consulta la documentación oficial de PICO: https://business.picoxr.com/cn/doc/Business-Streamingv2.
  2. Para los ajustes del proyecto, consulta la Guía de optimización de ajustes del proyecto.
  3. 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.
  4. 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.