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

Рабочий процесс разработки LCC для Pico 4 Ultra по сути такой же, как официальный процесс создания VR-проектов PICO; см. документацию PICO Unity Integration SDK. Это руководство на его основе объясняет, как интегрировать LCC Unity SDK для рендеринга сцен 3DGS.

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

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

Программное обеспечение / ПакетВерсияОписание
Unityv2022.3.62f3Используется Unity 2022 LTS
PICO Unity Integration SDKv3.4.0Получен из официального канала PICO
LCC Unity SDKv2.1.27 и новееВерсия, поддерживающая Built-in; загрузите версию, совместимую с Unity 2022 LTS

Более подробные требования к аппаратному и программному обеспечению см. в разделе Требования к среде разработки.

Примечание:

  1. Поскольку PICO Unity Integration SDK имеет серьёзные проблемы с производительностью на конвейере URP, рекомендуется рендер-конвейер Built-in; см. его известные проблемы.
  2. Если при тестировании с Unity v6000.0.69f1 приложение зависает или аварийно завершается, переключитесь на Unity v2022.3 LTS: устройства серии PICO 4 имеют проблемы с совместимостью с приложениями, использующими Unity 6 и Vulkan вместе; см. его известные проблемы.
  3. Версия Unity, версия PICO SDK и версия LCC SDK влияют на рендеринг и производительность; старайтесь сохранять версии программного обеспечения в соответствии с этим руководством.

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

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

В шаблоне проекта выберите тип 3D (Built-in Render Pipeline). Поскольку PICO Unity Integration SDK имеет серьёзные проблемы с производительностью на конвейере URP, не выбирайте конвейер URP, как показано ниже:

Создание проекта 3D (Built-in Render Pipeline)

Создание проекта 3D (Built-in Render Pipeline)

Шаг 2: Переключите платформу

В меню Unity выберите File → Build Profiles, чтобы открыть окно сборки, и переключите платформу на Android, как показано ниже:

Переключение платформы на Android в Build Profiles

Переключение платформы на Android в Build Profiles

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

Загрузите PICO Unity Integration SDK с официального сайта PICO и установите его, следуя руководству PICO; также можно импортировать его напрямую из GitHub по адресу https://github.com/Pico-Developer/PICO-Unity-Integration-SDK.git. В этом руководстве используется версия v3.4.0, как показано ниже:

Импорт PICO Unity Integration SDK v3.4.0

Импорт PICO Unity Integration SDK v3.4.0

Шаг 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

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

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

В строке меню Unity выберите File → Project Settings, выберите XR Plug-in Management слева и отметьте Initialize XR on Startup на вкладке платформы Android, как показано ниже:

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

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

Выберите пункт PICO в разделе XR Plug-in Management и задайте для Render Mode платформы Android значение MultiView, как показано ниже:

Установка PICO Render Mode в значение MultiView

Установка PICO Render Mode в значение MultiView

Выберите пункт Project Validation в разделе XR Plug-in Management и нажмите Fix All, чтобы завершить необходимые настройки (это также можно пропустить и создать вручную позже), как показано ниже:

Нажатие Fix All в Project Validation

Нажатие Fix All в Project Validation

Примечание:

  • Нажатие Fix All создаёт необходимые GameObject в текущей открытой сцене, поэтому вам нужно удалить Main Camera и Directional Light в сцене.
  • В этом примере исправляется только UIOrientation.LandscapeLeft; всё остальное создаётся вручную.

Настройте Keystore

Для разработки под PICO требуется Keystore. Перейдите в Player → вкладка Android → Publishing Settings → Keystore Manager, создайте новый Keystore и завершите настройки, как показано ниже:

Создание нового Keystore в Keystore Manager

Создание нового Keystore в Keystore Manager

Задайте название компании и название продукта

Разработка под PICO не допускает значение defaultCompany по умолчанию. На вкладке Player задайте правильные Company Name и Product Name, как показано ниже:

Задание Company Name и Product Name

Задание Company Name и Product Name

Настройте параметры качества

В Project Settings выберите вкладку Quality и задайте Anti Aliasing = Disabled, Resolution Scaling Fixed DPI Factor = 0.7 и VSync Count = Don't Sync, как показано ниже:

Отключение сглаживания и настройка DPI Factor и VSync на вкладке Quality

Отключение сглаживания и настройка DPI Factor и VSync на вкладке Quality

Заполните AppID

В меню Unity выберите PICO → Platform → Platform Setting, чтобы открыть панель настроек, и введите AppID, запрошенный на платформе разработчика PICO, в поле Paste your App ID here; см. Создание учётной записи разработчика, организации и приложения.

Ввод AppID в PICO Platform Setting

Ввод AppID в PICO Platform Setting

Настройте Graphics

В Project Settings выберите вкладку Graphics, выберите платформу Android и настройте, как показано ниже:

Настройка платформы Android на вкладке Graphics

Настройка платформы Android на вкладке Graphics

Настройте Player

В Project Settings выберите вкладку Player, выберите платформу Android, задайте Color Space = Gamma, снимите флажок Auto Graphics API и оставьте только Vulkan, остальные настройки — как показано ниже:

Установка Color Space в значение Gamma и сохранение только Vulkan для графического API

Установка Color Space в значение Gamma и сохранение только Vulkan для графического API

Прокрутите вниз на текущей вкладке и задайте Minimum API Level = Android 10.0, Scripting Backend = IL2CPP, API Compatibility Level = .NET Standard 2.1 и Target Architectures = ARM64, остальные настройки — как показано ниже:

Настройка Minimum API Level, Scripting Backend, API Compatibility Level и Target Architectures

Настройка Minimum API Level, Scripting Backend, API Compatibility Level и Target Architectures

Продолжите прокрутку вниз на текущей вкладке и задайте Active Input Handling = Input System Package (New), остальные настройки — как показано ниже:

Установка Active Input Handling в значение Input System Package (New)

Установка Active Input Handling в значение Input System Package (New)

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

Создайте совершенно новую сцену в Unity и удалите Main Camera и Directional Light. Щёлкните правой кнопкой мыши в пустой области окна Hierarchy и выберите XR → XR Origin (VR) во всплывающем меню, чтобы создать необходимые объекты XR.

Выберите объект XR Origin (VR) и добавьте компонент PXR_Manager через Add Component в окне Inspector и настройте его свойства, как показано ниже:

Добавление и настройка компонента PXR_Manager на XR Origin (VR)

Добавление и настройка компонента PXR_Manager на XR Origin (VR)

Выберите объект XR Origin (VR) и в компоненте XR Origin окна Inspector задайте Tracking Origin Mode значение Floor, остальные свойства — как показано ниже:

Установка Tracking Origin Mode компонента XR Origin в значение Floor

Установка Tracking Origin Mode компонента XR Origin в значение Floor

Выберите Main Camera (дочерний объект второго уровня у XR Origin (VR)) и задайте свойства компонента Camera в окне Inspector, как показано ниже:

Настройка свойств компонента Camera для Main Camera под XR Origin (VR)

Настройка свойств компонента Camera для Main Camera под XR Origin (VR)

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

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

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

В окне Hierarchy щёлкните правой кнопкой мыши и выберите Create Empty, чтобы создать ещё один пустой объект с именем 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;
using UnityEngine.XR;

public class LCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;

    private LCCCore.Renderer m_renderer;

    private void Awake()
    {
        XRSettings.eyeTextureResolutionScale = 0.8f; // Снижаем разрешение текстуры для повышения производительности
    }

    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.Pico);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load($"{Application.persistentDataPath}/LccData/meta.lcc2", onProgress, onLoaded);
#endif
    }

    private void onProgress(float v)
    {
        Debug.Log("прогресс:" + v);
    }

    private void onLoaded()
    {
        m_manager.SetStartLod(2);
        m_renderer.SetEnvironment(false);
        Debug.Log("Данные загружены");
    }
}

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

Прикрепление скрипта LCCRenderer и привязка Manager и пути к файлу

Прикрепление скрипта LCCRenderer и привязка Manager и пути к файлу

Для удобства отладки в редакторе Unity и упаковки непосредственно на устройство Android код использует макросы компиляции для различения среды выполнения: в редакторе используется путь, заданный через m_FilePath; на устройстве Android используется источник данных на самом устройстве. Данные на устройстве размещаются следующим образом:

  1. Сначала запустите упакованное приложение один раз на устройстве PICO.
  2. После установки приложения перейдите в его каталог данных (обычно хранилище устройства PICO → Android → data → BundleID приложения → Files; конкретный каталог см. в пути установки приложения Android) и создайте папку LccData в подкаталоге Files.
  3. Скопируйте все исходные данные LCC в папку LccData.

Примечание:

  1. На практике рекомендуется размещать источник данных приложения PICO на сервере, а не упаковывать его непосредственно в приложение.
  2. Устройство Pico 4 Ultra одновременно отображает на экране около 700 000 гауссовых примитивов, что примерно на два порядка меньше, чем ~25 миллионов на PC. Оно в основном рекомендуется для рендеринга и отображения небольших сцен и одиночных объектов; большие сцены плавнее отображаются через стриминг с PC.
  3. При рендеринге больших LCC-сцен рекомендуется задать StartLOD равным 2 и отключить отображение данных окружения (как в примере кода).

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

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