Enums: справочник перечислений
Перечисления, которые модуль LCC4UnrealRuntime предоставляет вне себя.
| Модуль | LCC4UnrealRuntime |
| Заголовочный файл | Core/LCCEnum.h |
#include "Core/LCCEnum.h"
Перечисления с пометкой BlueprintType доступны в Blueprint напрямую: их можно подключить к узлу Switch и использовать как тип переменной.
Рендеринг
ERenderMode
Режим отображения. Используется в ULCCComponentBase::RenderMode.
| Значение | Отображение в панели | Описание |
|---|---|---|
Splatting | 3DGS | Отображение как 3D гауссово splatting, качество высокое, затраты большие |
PointCloud | Point Cloud | Отображение как облако точек, качество ниже, затраты меньше |
Переход к облаку точек заметно снижает затраты и подходит для обзорных видов, мини-карт и дальнего плана, где детали не нужны. В режиме облака точек параметры, специфичные для 3DGS (сферические гармоники, SplatScale, GlobalAlpha), не действуют.
Связанные интерфейсы: SetRenderMode, ToggleRenderMode
ELoadMode
Режим фильтрации при загрузке. Используется в ULCCComponentBase::LoadMode.
| Значение | Отображение в панели | Описание |
|---|---|---|
Both | Both | Рендерить основную часть и окружение |
OnlyMain | OnlyMain | Рендерить только основную часть |
OnlyEnvironment | OnlyEnvironment | Рендерить только окружение |
None | None | Не рендерить ничего |
Основная часть — это ключевая область съёмки, а окружение — дополнительные данные по периферии. None равносильно временному скрытию с сохранением данных в памяти, поэтому восстановление гораздо быстрее повторной загрузки.
Связанные интерфейсы: SetLoadMode
ELightMode
Режим освещения. Используется в ULCCComponentBase::LightMode.
| Значение | Отображение в панели | Описание |
|---|---|---|
Unlit | Unlit | Не подвержен освещению сцены, показывает исходный цвет со съёмки |
Lit | Lit | Участвует в освещении сцены и взаимодействует с динамическим светом |
В данных съёмки освещение места уже запечено, поэтому переход к Lit добавляет ещё один слой и легко приводит к пересвету. Для LCC2 нужно вместе с этим понизить исходную яркость через LightingScale. Действует только в режиме 3DGS.
Связанные интерфейсы: SetLightMode, ToggleLightMode
EShadowMode
Режим теней.
| Значение | Отображение в панели | Описание |
|---|---|---|
None | None | Тени не принимаются |
Static | Static | Принимаются статические тени |
Dynamic | Dynamic | Принимаются динамические тени |
EColorationMode
Режим раскраски.
Способ раскраски в режиме отображения облаком точек. Используется в ULCCComponentBase::ColorationMode.
| Значение | Отображение в панели | Описание |
|---|---|---|
Elevation | Evelation | Раскраска по высоте, перекрывает исходный цвет |
Data | Data | Используется RGB из самих данных |
Elevation вместе с ElevationColorBottom и ElevationColorTop даёт визуализацию высоты рельефа; Data показывает реальные цвета объектов. Действует только при режиме отображения облаком точек, см. Настройку изображения — облако точек.
ELCC2NormalGenerationMode
Режим генерации нормалей в LCC2. Используется в ULCC2Component::NormalMode.
У данных 3DGS нет геометрических нормалей, а освещению нормали нужны. Первые три режима строят приближение, и только ProxyMesh даёт настоящие нормали.
| Значение | Отображение в панели | Настоящая светотень | Описание |
|---|---|---|---|
Fixed | Fixed | Нет | Вся область 3DGS использует одну заданную пользователем мировую нормаль, по умолчанию направленную вверх. Яркость всей области равна dot(нормаль, направление света) |
ViewFacing | View Facing | Нет | Вся область обращена к камере и освещается равномерно |
Hemispherical | Hemispherical | Нет | Нормали, не зависящие от камеры, отображаются из положения на экране в фиксированную мировую полусферу |
ProxyMesh | Proxy Mesh | Да | Настоящие глубину и нормали даёт ALCC2ProxyMesh в сцене, а 3DGS отвечает только за цвет |
Компромиссы режимов:
| Режим | Достоинства | Недостатки |
|---|---|---|
Fixed | Нет диагональных световых полос, полная стабильность при движении камеры, минимальные затраты | Совсем нет объёмной светотени; когда свет приходит с обратной стороны нормали, вся область темнеет |
ViewFacing | Не требует настройки, нет диагональных световых полос | Нет объёмной светотени; при повороте камеры общая яркость плывёт |
Hemispherical | Нет диагональных световых полос, стабильность при движении камеры, самый плавный переход при движении солнца | Светотень по-прежнему не настоящая; нужно подбирать NormalPole и NormalHemiSpread |
ProxyMesh | Настоящие геометрические нормали и глубина | Нужно изготовить и разместить подходящий прокси-меш; требуется лицензия, без неё происходит откат к Fixed |
Рекомендации по выбору: по умолчанию Fixed; для плавного движения солнца — Hemispherical; для настоящей объёмной светотени — ProxyMesh; ViewFacing подходит только для быстрой проверки результата.
Связанные страницы: ULCC2Component, ALCC2ProxyMesh
Обрезка и сечение
EClipType
Направление обрезки. Используется в ALCCClippingVolume::Mode.
| Значение | Отображение в панели | Описание |
|---|---|---|
Inside | Inside | Обрезается внутренняя часть объёма |
Outside | Outside | Обрезается внешняя часть объёма |
Inside применяют, чтобы вырезать проёмы и раскрыть оболочку; Outside — чтобы оставить только интересующую область.
EClipVolumeType
Форма объёма обрезки. Используется в ALCCClippingVolume::VolumeType.
| Значение | Описание |
|---|---|
Box | Объём в форме бокса |
Sphere | Объём в форме сферы |
ESectionType
Направление сечения. Используется в ALCCSectionPlane::Mode.
| Значение | Отображение в панели | Описание |
|---|---|---|
Upside | Upside | Отсекается то, что выше плоскости |
Downside | Downside | Отсекается то, что ниже плоскости |
Верх и низ отсчитываются от собственной ориентации плоскости, а не от мировых координат. Поворот секущей плоскости даёт сечение в любом направлении.
ELoadRegion
Область загрузки. Используется в ALCCLoadVolume::Mode.
| Значение | Отображение в панели | Описание |
|---|---|---|
Inside | Inside | Загружаются только данные внутри объёма |
Outside | Outside | Загружаются только данные вне объёма |
Отличие от EClipType: здесь выбирается, какую часть загружать, а не какую обрезать. Отсеянные области вообще не читаются, поэтому объём загрузки и расход видеопамяти снижаются. Проверка идёт по узлам, поэтому граница грубее, чем у объёма обрезки.
ELoadVolumeType
Форма объёма загрузки. Используется в ALCCLoadVolume::VolumeType.
| Значение | Описание |
|---|---|
Box | Объём в форме бокса |
Sphere | Объём в форме сферы |
Связанные страницы: ALCCClippingVolume, ALCCSectionPlane, Объёмы загрузки
Данные и форматы
ELCCVersion
Версия данных.
| Значение | Описание |
|---|---|
LCC | Формат LCC1 |
LCC2 | Формат LCC2 |
Связанные интерфейсы: ULCCComponentBase::GetLccVersion
EFileFormat
Формат файла. Тип возвращаемого значения ULCCUtilLibrary::DetermineFileFormat.
| Значение | Соответствующее расширение |
|---|---|
None | Не распознано или путь не существует |
LCC | .lcc |
Splats | .splats |
LAS | .las |
PLY | .ply |
Обрати внимание, что охват распознавания у DetermineFileFormat ограничен: для .lcc2, .sog и .spz возвращается None. Эти форматы определяй прямо по расширению, подробнее см. DetermineFileFormat.
EDataSourceType
Формат источника данных дерева LCC2. Используется в FLCC2MetaInfo::SplatType.
| Значение | Описание |
|---|---|
SOG | Источник данных .sog |
SPZ | Источник данных .spz |
PLY | Источник данных .ply |
Это обычное перечисление C++ без пометки UENUM, в Blueprint оно не видно.
EFileType
Тип содержимого данных.
| Значение | Отображение в панели | Описание |
|---|---|---|
Portable | Portable | Только RGB, без сферических гармоник |
Quality | Quality | И RGB, и сферические гармоники |
У данных Portable сферических гармоник нет, поэтому bUseShcoef в этом случае недоступно для изменения. Метод CanSetShcoef() фактически лишь проверяет, равен ли тип Quality.
ELCCSourceType
Источник данных. Тип возвращаемого значения ULCCUtilLibrary::DetermineSourceType.
| Значение | Описание |
|---|---|
Local | Локальный файл |
Http | Сетевой адрес |
ECollisionType
Формат данных коллизий. Тип возвращаемого значения ULCCUtilLibrary::DetermineCollisionType.
| Значение | Описание |
|---|---|
None | Данных коллизий нет |
Bin | Старый формат .bin |
Lci | Новый формат .lci |
Ply | Коллизии из облака точек .ply |
Когда возвращается None, включение bEnableCollision не даёт эффекта.
ELoadStatus
Состояние загрузки.
| Значение | Описание |
|---|---|
Success | Успешно |
Failure | Неудачно |
Progress | Выполняется |
Производительность и планирование
ETraversalType
Способ обхода узлов. Используется для пункта Default Traversal Type в настройках проекта (Project Settings → Plugins → LCC4Unreal).
| Значение | Отображение в панели | Описание |
|---|---|---|
Circle | Circle | Круговой обход с центром в камере и радиусом, равным максимальной дистанции рендеринга |
Sector | Frustum | Обход на основе пирамиды видимости камеры |
Frustum обрабатывает только узлы в поле зрения и обычно экономнее, но при быстром повороте обзора узлы вне поля зрения не предзагружены, из-за чего возможна задержка их подгрузки.
Обрати внимание: имя элемента перечисления — Sector, а в панели отображается Frustum.
ESortMethod
Способ сортировки полупрозрачности. Используется для пункта Default Sort Method в настройках проекта.
| Значение | Описание |
|---|---|
GPU | Сортировка на GPU |
CPU | Сортировка на CPU |
Обычно используют GPU.
ESortMode
Порядок сортировки.
| Значение | Описание |
|---|---|
Ascending | По возрастанию |
Descending | По убыванию |
EComputeType
Тип вычислительного конвейера.
| Значение | Описание |
|---|---|
Compute | Compute на графическом конвейере |
AsyncCompute | Асинхронный вычислительный конвейер |
Текущая реализация использует Compute; у AsyncCompute есть проблемы с рендерингом, и он пока не включён.
Локализация
ELocale
Языковая среда. Тип возвращаемого значения ULCCUtilLibrary::GetLocale.
| Значение | Описание |
|---|---|
EN_US | Английский |
ZH_CN | Упрощённый китайский |
ELanguagePreference
Предпочтение языка интерфейса плагина. Используется для пункта Language в настройках проекта.
| Значение | Отображение в панели | Описание |
|---|---|---|
FollowEditor | Follow Editor | Следовать текущей языковой настройке редактора |
AlwaysEnglish | Always English | Всегда английский, независимо от языка редактора |
Использование перечислений в Blueprint
В Blueprint по перечислению можно ветвиться узлом Switch:
[Get Render Mode]
Target = (LCC Component)
│ Return Value ──┐
▼ │
[Switch on ERenderMode] ◀┘
│ Splatting ──▶ (3DGS branch logic)
│ Point Cloud ─▶ (point cloud branch logic)
Можно и сравнивать напрямую:
[Get Effective Normal Generation Mode]
│ Return Value ──┐
▼ │
[Equal (Enum)] ◀─────────┘
A = (Return Value)
B = Proxy Mesh
│
▼
[Branch]
Смотрите также
- ULCCComponentBase: применение
ERenderMode,ELoadMode,ELightMode - ULCC2Component: применение
ELCC2NormalGenerationMode - ULCCUtilLibrary: вспомогательные функции, возвращающие перечисления форматов
- Structs: структуры, использующие эти перечисления