XGRIDSДокументация
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Lixel CyberColor

    • Руководство пользователя LCC Studio

      • Начало работы
      • Версия и обновления
      • Загрузка и установка
      • Обзор интерфейса и навигация
      • Перед реконструкцией
      • Реконструкция модели
      • Реконструкция одиночной модели
      • Объединение карт
      • Воздушно-наземное объединение
      • Воздушная реконструкция
      • Мои модели
      • Другие функции
      • Настройки и учётная запись
      • Конвертер
      • Реконструкция по видео
      • Часто задаваемые вопросы
    • LCC Scene Editor

      • Версия и обновления
      • Учётная запись и вход
      • Обзор продукта и главная страница
      • Интерфейс редактора
      • Режимы навигации по сцене
      • Файл
      • Настройки
      • Операции редактирования
      • Окно
      • Глобальная панель инструментов
      • Ресурсы и свойства
      • Левая панель инструментов
      • Точки обзора
      • Портал
      • Skybox
      • Аннотации
      • Измерение
      • Flythrough
      • Отчёт по сцене
      • 3D Layout
      • Мини-карта
      • Preview Mode (Viewer)
      • Справка
      • Часто задаваемые вопросы
      • Точка появления
    • LCC Model Editor

      • Версия и обновления
      • Руководство пользователя
      • Обзор и интерфейс
      • Операции с файлами
      • Инструменты выбора
      • Редактирование моделей
      • Измерение
      • Цветокоррекция
      • Управление ресурсами
      • Настройки и справка
      • Часто задаваемые вопросы
    • Рекомендации по применению

      • Объединение нескольких крупных моделей 3DGS
  • Plugin & SDK

    • Unreal

      • Введение
      • Быстрый старт — Windows
      • Быстрый старт — Linux
      • Быстрый старт — Quest3
      • Редакции и лицензирование
      • Рендеринг
      • Растеризация Tiled (экспериментально)
      • Визуальные настройки
      • Нормали и освещение
      • Редактирование сцены
      • Параметры производительности
      • Руководство по оптимизации производительности
      • Интеграция со сторонними и движковыми плагинами
      • Прокси-меш
      • Анимация загрузки
      • Коллизии
      • Поддержка системы навигации
      • Поддержка однослойной воды
      • Локализация
      • Частые вопросы
      • Устранение неполадок
      • Журналы и диагностика
      • Свяжитесь с нами
      • Рекомендуемые практики

        • Переосвещение 3DGS с помощью меша LixelStudio
      • Справочник API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Журнал изменений

        • 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

      • Введение в Unity SDK
      • Технические возможности
      • Требования к среде разработки
      • Руководство по быстрому старту для PC
      • Руководство по оптимизации настроек проекта
      • Руководство по разработке для Pico 4 Ultra
      • Руководство по стримингу Pico 4 Ultra с PC
      • Руководство по разработке для Quest 3
      • Руководство по стримингу Quest 3 с PC
      • Руководство по разработке OpenXR
      • Руководство по бизнес-стримингу Pico 4 Ultra
      • Глоссарий
      • FAQ
      • Свяжитесь с нами
      • Руководство по разработке функций

        • Руководство по разработке смешанного рендеринга нескольких сцен
        • Руководство по разработке приёма теней
        • Руководство по разработке освещения в реальном времени
        • Руководство по разработке многокамерного рендеринга
        • Руководство по разработке рендеринга изображений высокого разрешения
        • Руководство по разработке совместимости форматов данных LCC и LCC2
        • Руководство по разработке эффекта загрузки
        • Руководство по разработке переключения режима рендеринга Mip
        • Руководство по разработке привязки к рёбрам и углам
        • Руководство по разработке проецируемых декалей
        • Руководство по разработке видеопроецируемой декали
        • Руководство по разработке подсветки
        • Руководство по разработке обрезки в реальном времени
        • Руководство по разработке коррекции цвета
        • Руководство по разработке получения данных Mesh сцены
        • Руководство по разработке в режиме редактора
        • Руководство по настройке параметров производительности рендеринга
        • Руководство по разработке совместной упаковки приложения и данных
        • Руководство по разработке системы коллизий
        • Руководство по проблемам с разрешениями при разработке на macOS
        • Руководство по разработке компиляции и упаковки для устройств iOS
      • Справочник по API

        • LCCManager
        • Renderer
        • Типы данных
      • Журнал изменений

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

Руководство по бизнес-стримингу Pico 4 Ultra

Бизнес-стриминг Pico 4 Ultra рендерит проект Unity на PC и передаёт его на устройство для просмотра и взаимодействия через официальный инструмент Business Streaming от PICO, используя вычислительную мощность PC для достижения более высокой производительности, чем рендеринг на устройстве. Это руководство объясняет, как интегрировать LCC Unity SDK и завершить разработку стриминга с Business Streaming.

Требования к версиям

Версии программного обеспечения и плагинов, используемые в этом руководстве, приведены ниже. Рекомендуется разрабатывать с теми же версиями; другие непротестированные версии могут иметь проблемы с совместимостью:

Программное обеспечение / ПлагинВерсияОписание
Unityv6000.0.69f1 и вышеИспользуется Unity 6
OpenXR1.61.1 и вышеUnity OpenXR Plugin, устанавливается из Unity Registry
LCC Unity SDKv2.3.0 и вышеПолучите на странице загрузки LCC Unity SDK
Business Streamingv2.2.0 и вышеПолучите у официального PICO

Примечание:

  1. Business Streaming подключается через OpenXR, что отличается от Руководство по разработке для Pico 4 Ultra, использующего PICO Unity Integration SDK; не путайте их.
  2. Версия Unity, версия OpenXR и версия LCC SDK влияют на рендеринг и производительность, поэтому старайтесь сохранять версии программного обеспечения в соответствии с этим руководством.

Рабочий процесс разработки

Шаг 1: Предварительные требования

Загрузите и установите Business Streaming v2.2.0 или выше как на компьютере, с которого будет выполняться стриминг, так и на устройстве Pico 4 Ultra; после установки рекомендуется один раз перезагрузить компьютер.

Шаг 2: Создайте проект URP

Выберите тип Universal 3D (рендер-конвейер URP) в шаблоне проекта, как показано ниже:

Создание проекта Universal 3D

Создание проекта Universal 3D

Шаг 3: Импортируйте Unity OpenXR

Откройте окно UPM через меню Unity Window → Package Manager, выберите Unity Registry в левом списке, введите OpenXR в поле поиска, выберите OpenXR Plugin из результатов поиска и установите его, как показано ниже:

Установка OpenXR Plugin из Unity Registry

Установка OpenXR Plugin из Unity Registry

Шаг 4: Импортируйте LCC Unity SDK

Откройте окно UPM через меню Unity Window → Package Manager, нажмите + слева, выберите Install package from disk из выпадающего меню, найдите LCC Unity SDK и выберите файл package.json для импорта, как показано ниже:

Импорт LCC Unity SDK через Install package from disk

Импорт LCC Unity SDK через Install package from disk

Примечание: После выполнения описанных выше шагов перезапустите Unity, прежде чем переходить к последующим настройкам.

Шаг 5: Настройте среду Unity

Настройте XR Plug-in Management

В строке меню Unity выберите File → Project Settings, выберите XR Plug-in Management слева, отметьте Initialize XR on Startup на вкладке PC, Mac & Linux Standalone Settings и отметьте OpenXR в качестве Plug-in Provider, как показано ниже:

Отметка Initialize XR on Startup и OpenXR в XR Plug-in Management

Отметка Initialize XR on Startup и OpenXR в XR Plug-in Management

Примечание: Если после OpenXR появился жёлтый значок предупреждения, нажмите Fix All, чтобы исправить всё.

Выберите пункт OpenXR в разделе XR Plug-in Management и задайте Render Mode значение Single Pass Instanced или Multi Pass по мере необходимости; обычно Single Pass Instanced обеспечивает лучшую производительность, остальные настройки остаются по умолчанию, как показано ниже:

Установка OpenXR Render Mode в значение Single Pass Instanced или Multi Pass

Установка OpenXR Render Mode в значение Single Pass Instanced или Multi Pass

Настройте графические API

Откройте панель настроек через Edit → Project Settings → Player, выберите пункт Other на вкладке соответствующей платформы и настройте графические API для каждой платформы:

ПлатформаДействие
WindowsСнимите флажок Auto Graphics API for Windows и добавьте DirectX12, Vulkan и DirectX11 в качестве трёх графических API
macOSСнимите флажок Auto Graphics API for Mac и оставьте графический API Metal
LinuxСнимите флажок Auto Graphics API for Linux и оставьте графический API Vulkan

Примечание: На платформе Windows рекомендуется использовать DirectX12 или Vulkan, которые обеспечивают лучшую производительность; для DirectX11 рекомендуется включить рендеринг HDR, чтобы избежать артефактов рендеринга.

Шаг 6: Создайте сцену

Этот пример начинается с совершенно новой Scene. Создайте сцену Unity (Scene), щёлкните правой кнопкой мыши в пустой области окна иерархии (Hierarchy) и выберите XR → Convert Main Camera To XR Rig во всплывающем меню, чтобы преобразовать Main Camera в XR-камеру.

Шаг 7: Настройте сцену

Выберите GameObject XR Rig в окне иерархии (Hierarchy) и в окне свойств (Inspector) задайте Request Tracking Mode свойства Camera Offset значение Floor, как показано ниже:

Установка Request Tracking Mode для Camera Offset XR Rig в значение Floor

Установка Request Tracking Mode для Camera Offset XR Rig в значение Floor

Выберите GameObject XR Rig → Camera Offset → Main Camera в окне иерархии (Hierarchy) и задайте свойства компонента Camera в окне свойств (Inspector): Clipping Planes Near = 0.3, Far = 5000; Anti-aliasing = No Anti-aliasing; Opaque Texture = Off, Depth Texture = Off; Background Type = Solid Color, Background = чёрный; HDR Rendering = Off, MSAA = Off, URP Dynamic Resolution = Off, как показано ниже:

Настройка свойств компонента Camera для Main Camera под XR Rig

Настройка свойств компонента Camera для Main Camera под XR Rig

Шаг 8: Напишите код для загрузки сцены

Щёлкните правой кнопкой мыши Create Empty в окне иерархии (Hierarchy), чтобы создать пустой объект, назовите его LCCManager, нормализуйте его Transform и прикрепите скрипт LCCManager через Add Component, как показано ниже:

Создание пустого объекта LCCManager и прикрепление скрипта LCCManager

Создание пустого объекта LCCManager и прикрепление скрипта LCCManager

Щёлкните правой кнопкой мыши Create Empty в окне иерархии (Hierarchy), чтобы создать ещё один пустой объект, назовите его LCCRenderer и задайте его Transform Rotation.x = -90, Scale.x = -1, как показано ниже:

Создание пустого объекта LCCRenderer и настройка Transform для выравнивания системы координат

Создание пустого объекта LCCRenderer и установка Rotation.x = -90 и Scale.x = -1 для выравнивания систем координат

Rotation.x = -90 и Scale.x = -1 — это преобразование выравнивания из системы координат данных LCC (правая, ось Z вверх) в систему координат Unity (левая, ось Y вверх); см. раздел «Система координат данных LCC» в Введение в Unity SDK.

Напишите скрипт C# с именем LCCRenderer.cs со следующим кодом:

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;
        // задаём тип платформы PCVR
        m_manager.SetPlatformType(PlatformType.PCVR);
        m_manager.SetMainCamera(m_mainCamera);
        m_manager.SetLockFPS(false);
        //Устанавливает splat полного рендеринга в 15 миллионов, что означает, что LCC LOD0 > 15 миллионов пойдёт по чанковому пути рендеринга.
        //m_manager.SetFullRenderSplat(1500);
        //Устанавливает максимальный splat рендеринга в 15 миллионов, что означает, что максимальный экранный предел splat составляет 15 миллионов на чанковом пути рендеринга.
        //m_manager.SetMaxRenderSplats(1500);
        m_renderer = m_manager.GetRender(this.transform);
        if (m_renderer == null)
            Debug.LogError("GetRender завершился ошибкой: проверьте, правильно ли задан manager и валиден ли путь к файлу.");
        m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback, onError);
    }

    private void onLoadProgress(float value)
    {
        Debug.Log($"прогресс загрузки: {value}");
    }

    private void onLoadCallback()
    {
        //Устанавливает начальный LOD на 2, что означает, что первоначальный рендеринг будет на уровне LOD2.
        //m_manager.SetStartLod(2);
        Debug.Log("данные загружены !!!");
        m_isLoaded = true;
    }

    private void onError(string error)
    {
        Debug.LogError($"ошибка загрузки: {error}");
    }
}

Прикрепите скрипт к GameObject LCCRenderer в окне иерархии (Hierarchy), затем перетащите GameObject LCCManager на свойство Manager скрипта в окне свойств (Inspector) и, наконец, заполните путь к файлу LCC.

После завершения описанной выше настройки структура сцены в окне иерархии (Hierarchy) выглядит, как показано ниже:

Структура сцены после настройки

Структура сцены после настройки

Примечание: В сцене должны оставаться Directional Light, Global Volume и другие объекты, создаваемые по умолчанию в проекте URP.

Шаг 9: Настройте Business Streaming

Запустите Business Streaming на компьютере, выберите Settings → General и задайте Default Streaming Type значение OpenXR Streaming, как показано ниже:

Установка Default Streaming Type Business Streaming в значение OpenXR Streaming

Установка Default Streaming Type Business Streaming в значение OpenXR Streaming

Шаг 10: Запустите стриминг

  1. Подключите Pico 4 Ultra к компьютеру через USB 3.0 или высокоскоростной Wi-Fi.
  2. Откройте Business Streaming на устройстве Pico 4 Ultra и подключитесь к компьютеру.
  3. Нажмите кнопку Play в редакторе Unity для запуска или откройте опубликованное приложение, чтобы начать стриминг.

Примечание:

  1. По использованию программного обеспечения Business Streaming см. официальную документацию PICO: https://business.picoxr.com/cn/doc/Business-Streamingv2.
  2. По настройкам проекта см. Руководство по оптимизации настроек проекта.
  3. Стриминг требует высокопроизводительного аппаратного обеспечения PC (особенно видеокарты); используйте высокопроизводительный компьютер для стриминга и используйте USB 3.0 или высокоскоростной Wi-Fi.
  4. PCVR-стриминг выполняет рендеринг дважды (режим SPI также имеет удвоенные накладные расходы на вершины), поэтому производительность и частоту кадров можно повысить, настроив полный/чанковый рендеринг, максимальный экранный объём рендеринга, начальный уровень LOD и т. д.; о настройке параметров см. Руководство по настройке параметров производительности рендеринга.

Связанные ссылки

  • Информацию о настройках проекта и оптимизации производительности см. в главах Руководство по оптимизации настроек проекта и Руководство по настройке параметров производительности рендеринга.
  • Для рабочего процесса рендеринга на устройстве с использованием PICO Unity Integration SDK см. Руководство по разработке для Pico 4 Ultra.
  • Для других инструкций по использованию Business Streaming см. официальную документацию PICO: Business Streaming.