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

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

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

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

      • Версия и обновления
      • Руководство пользователя
      • Обзор и интерфейс
      • Операции с файлами
      • Инструменты выбора
      • Редактирование моделей
      • Измерение
      • Цветокоррекция
      • Управление ресурсами
      • Настройки и справка
      • Часто задаваемые вопросы
  • 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

Получение реальных нормалей для 3DGS с помощью прокси-меша

Обзор

ProxyMesh — это возможность редакции Pro в LCC4Unreal. Она даёт реальную информацию о глубине и нормалях за счёт размещённого прокси-меша и является единственным режимом нормалей с затенением по реальной форме. Она применима ко всем форматам конвейера LCC2 (.lcc2 / .sog / .spz / .ply). О лицензировании см. Редакции и лицензирование.

Примечание: ProxyMesh требует действующей лицензии. Без неё происходит автоматический откат к режиму Fixed.

Что такое прокси-меш

У данных 3DGS нет собственных нормалей поверхности, и они ничего не записывают в GBuffer, поэтому не могут участвовать в обычных расчётах освещения. Задача прокси-меша — предоставить геометрию, форма которой совпадает с 3DGS. Плагин берёт у неё глубину, нормали и свойства материала в GBuffer и передаёт их освещению и постобработке движка; сам меш в итоговом изображении не появляется.

        3DGS data                    Proxy mesh
   (color, opacity)          (depth, normals, material properties)
           │                              │
           │                              ▼
           │                      Written into the GBuffer
           │                              │
           │              ┌───────────────┴───────────────┐
           │              ▼                               ▼
           │      Engine lighting                Post-processing that
           │   (directional, point, shadows)   depends on the GBuffer
           │              │                  (reflection, refraction, etc.)
           │              └───────────────┬───────────────┘
           ▼                              ▼
       Color source ──────────────▶  Composite final image
                                          │
                                          ▼
                              The proxy mesh itself is invisible

Иначе говоря: цвет в изображении приходит от 3DGS, а отклик на освещение — от прокси-меша.

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

ИсточникОписание
Приблизительный меш, созданный вместе с 3DGSМеш, выводимый процессом съёмки; наиболее точное совпадение формы и предпочтительный вариант
Меш, полученный преобразованием 3DGSМеш, восстановленный из 3DGS сторонним инструментом
Меш, созданный вручнуюСмоделирован по форме 3DGS в DCC-программе, подходит для сцен, где нужен точный контроль
Сборка из базовых примитивовПриблизительные объёмы из Cube, Plane и других базовых мешей, подходит для правильных форм вроде зданий и земли

Единственное требование — меш должен совпадать по форме с 3DGS в пространстве. Чем точнее совпадение, тем реалистичнее освещение; при слишком большом расхождении направление света перестаёт соответствовать форме, видимой в изображении.

Точность меша не должна быть высокой: достаточно упрощённой низкополигональной геометрии, если объёмы и ориентация верны.

Роль материала

Свойства материала прокси-меша читаются вместе с GBuffer, поэтому именно они определяют, как поверхность 3DGS реагирует на освещение.

Для базового освещения достаточно материала-белой заготовки, текстуры не нужны. Для эффектов, зависящих от свойств материала, используйте соответствующий PBR-материал в нужном месте меша, например:

  • Отражение и преломление воды: используйте в области воды материал воды с подходящими значениями Metallic и Roughness
  • Металлические блики: задайте соответствующие Metallic и Roughness в местах металлических конструкций
  • Шероховатые поверхности: используйте высокое Roughness, чтобы подавить блики, которых не должно быть

Когда свойства материала не соответствуют фактической форме, результат освещения не совпадает с внешним видом 3DGS в изображении, например на стене, которая должна быть шероховатой, появляются зеркальные блики.

Быстрая настройка

Шаг 1: разместите Actor ProxyMesh

  1. Добавьте Actor ALCC2ProxyMesh из панели плагина LCC4Unreal в редакторе
  2. Назначьте StaticMesh его компоненту StaticMeshComponent (источник любой, см. раздел выше)
  3. Скорректируйте положение ProxyMesh так, чтобы он перекрывался с содержимым 3DGS в пространстве
Размещение Actor ALCC2ProxyMesh

Размещение Actor ALCC2ProxyMesh в сцене

Шаг 2: включите режим ProxyMesh

  1. Выберите Actor конвейера LCC2 (ALCC2Actor / ASogActor / ASpzActor / APlyActor)
  2. Найдите в панели Details параметр LightMode и измените его на Lit
  3. Найдите в панели Details категорию Lighting у LCC2Component
  4. Установите NormalMode в ProxyMesh
Включение Lit и выбор режима нормалей ProxyMesh

Включение Lit и установка NormalMode в ProxyMesh

Шаг 3: проверка

  • Измените направление освещения сцены и посмотрите, появляется ли у 3DGS самозатенение
  • Убедитесь, что прокси-меш скрыт в итоговом изображении
Освещение с реальными нормалями через ProxyMesh

Результат освещения после того, как ProxyMesh даёт реальные нормали

Пример использования ProxyMesh

Демонстрация настройки ProxyMesh и результата освещения

Процесс настройки ProxyMesh и результат освещения

ALCC2ProxyMesh

Прокси-Actor, используется в паре с Actor конвейера LCC2 при NormalMode = ProxyMesh.

Свойства

СвойствоОписание
StaticMeshComponentСтатический меш, дающий глубину и нормали сцены

Преобразование по умолчанию

  • Масштаб (100, 100, 100): единица меша по умолчанию — метры, а UE использует сантиметры
  • Поворот (0, 180, 0): компенсирует противоположное направление оси вперёд у конвейера создания меша относительно UE

Поведение

  • При корректном StaticMesh автоматически включает рендеринг CustomDepth
  • При пустом StaticMesh записывает предупреждение и отключает CustomDepth

Проверка лицензии

Режим ProxyMesh требует лицензии редакции Pro, см. Редакции и лицензирование. Без лицензии происходит автоматический откат к режиму Fixed, а сохранённое значение свойства не изменяется.

Переключение во время выполнения

NormalMode можно изменить во время выполнения из Blueprint или C++, изменение вступает в силу на следующем кадре.

Использование в Blueprint

Создание ProxyMesh

SpawnActor->Class: ALCC2ProxyMesh
→ Set the StaticMesh of StaticMeshComponent
→ Adjust the position to align with the 3DGS content

Переключение режима

LCC2Component->NormalMode = ProxyMesh

Рекомендации

  1. Охват меша: убедитесь, что прокси-меш покрывает ту же область пространства, что и содержимое 3DGS.
  2. Точность меша: достаточно упрощённого приближения геометрии сцены, высокое число полигонов не нужно.
  3. Несколько Actor: можно разместить несколько Actor ALCC2ProxyMesh для разных областей.
  4. Явная привязка не нужна: ProxyMesh не нужно связывать с конкретным Actor, объединение в пару происходит автоматически.
  5. Обратная совместимость: проекты, не использующие ProxyMesh, ведут себя точно так же, как до обновления, без дополнительных издержек.

Устранение неполадок

ProxyMesh не даёт результата

  • Убедитесь, что NormalMode установлен в ProxyMesh
  • Убедитесь, что лицензия действительна
  • Убедитесь, что Actor ProxyMesh назначен корректный StaticMesh
  • Убедитесь, что ProxyMesh перекрывается с содержимым 3DGS в пространстве

Предупреждение «has a null StaticMesh»

Назначьте StaticMesh Actor ALCC2ProxyMesh. Предупреждение ограничено по частоте и выдаётся только один раз на экземпляр.

В итоговом изображении виден цвет белой заготовки

  • Убедитесь, что хотя бы один LCC2Component находится в режиме ProxyMesh
  • Если сопоставление глубины слишком строгое, скорректируйте LCC2.ProxyMeshDepthEpsilon

Освещение выглядит неправильно

  • Проверьте, являются ли нормали прокси-меша разумным приближением фактической геометрии сцены

Тени появляются только вблизи и обрезаются в отдалении

Это проблема самого движка. Выберите Actor ProxyMesh, выключите и снова включите Far Shadow у StaticMeshComponent, чтобы восстановить полные тени.

Назад
Интеграция со сторонними и движковыми плагинами
Далее
Анимация загрузки