Руководство по бизнес-стримингу Pico 4 Ultra
Бизнес-стриминг Pico 4 Ultra рендерит проект Unity на PC и передаёт его на устройство для просмотра и взаимодействия через официальный инструмент Business Streaming от PICO, используя вычислительную мощность PC для достижения более высокой производительности, чем рендеринг на устройстве. Это руководство объясняет, как интегрировать LCC Unity SDK и завершить разработку стриминга с Business Streaming.
Требования к версиям
Версии программного обеспечения и плагинов, используемые в этом руководстве, приведены ниже. Рекомендуется разрабатывать с теми же версиями; другие непротестированные версии могут иметь проблемы с совместимостью:
| Программное обеспечение / Плагин | Версия | Описание |
|---|---|---|
| Unity | v6000.0.69f1 и выше | Используется Unity 6 |
| OpenXR | 1.61.1 и выше | Unity OpenXR Plugin, устанавливается из Unity Registry |
| LCC Unity SDK | v2.3.0 и выше | Получите на странице загрузки LCC Unity SDK |
| Business Streaming | v2.2.0 и выше | Получите у официального PICO |
Примечание:
- Business Streaming подключается через OpenXR, что отличается от Руководство по разработке для Pico 4 Ultra, использующего PICO Unity Integration SDK; не путайте их.
- Версия Unity, версия OpenXR и версия LCC SDK влияют на рендеринг и производительность, поэтому старайтесь сохранять версии программного обеспечения в соответствии с этим руководством.
Рабочий процесс разработки
Шаг 1: Предварительные требования
Загрузите и установите Business Streaming v2.2.0 или выше как на компьютере, с которого будет выполняться стриминг, так и на устройстве Pico 4 Ultra; после установки рекомендуется один раз перезагрузить компьютер.
Шаг 2: Создайте проект URP
Выберите тип Universal 3D (рендер-конвейер URP) в шаблоне проекта, как показано ниже:

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

Установка 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
Примечание: После выполнения описанных выше шагов перезапустите 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
Примечание: Если после 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
Настройте графические 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
Выберите 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
Шаг 8: Напишите код для загрузки сцены
Щёлкните правой кнопкой мыши Create Empty в окне иерархии (Hierarchy), чтобы создать пустой объект, назовите его LCCManager, нормализуйте его Transform и прикрепите скрипт LCCManager через Add Component, как показано ниже:

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

Создание пустого объекта 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
Шаг 10: Запустите стриминг
- Подключите Pico 4 Ultra к компьютеру через USB 3.0 или высокоскоростной Wi-Fi.
- Откройте Business Streaming на устройстве Pico 4 Ultra и подключитесь к компьютеру.
- Нажмите кнопку Play в редакторе Unity для запуска или откройте опубликованное приложение, чтобы начать стриминг.
Примечание:
- По использованию программного обеспечения Business Streaming см. официальную документацию PICO: https://business.picoxr.com/cn/doc/Business-Streamingv2.
- По настройкам проекта см. Руководство по оптимизации настроек проекта.
- Стриминг требует высокопроизводительного аппаратного обеспечения PC (особенно видеокарты); используйте высокопроизводительный компьютер для стриминга и используйте USB 3.0 или высокоскоростной Wi-Fi.
- PCVR-стриминг выполняет рендеринг дважды (режим SPI также имеет удвоенные накладные расходы на вершины), поэтому производительность и частоту кадров можно повысить, настроив полный/чанковый рендеринг, максимальный экранный объём рендеринга, начальный уровень LOD и т. д.; о настройке параметров см. Руководство по настройке параметров производительности рендеринга.
Связанные ссылки
- Информацию о настройках проекта и оптимизации производительности см. в главах Руководство по оптимизации настроек проекта и Руководство по настройке параметров производительности рендеринга.
- Для рабочего процесса рендеринга на устройстве с использованием PICO Unity Integration SDK см. Руководство по разработке для Pico 4 Ultra.
- Для других инструкций по использованию Business Streaming см. официальную документацию PICO: Business Streaming.