Обрезка и сечение сцен 3DGS
Три инструмента действуют на разных этапах: объёмы обрезки и секущие плоскости меняют только итоговый рендеринг, а данные загружаются как обычно; объём загрузки действует до загрузки, поэтому исключённые области вообще не читаются.
| Инструмент | Этап | Уменьшает объём загрузки и видеопамять | Точность границы |
|---|---|---|---|
| Объёмы загрузки | Фильтрация до загрузки | Да | По узлам, консервативная граница |
| Объёмы обрезки | Итоговый рендеринг | Нет | По splat, точная граница |
| Секущие плоскости | Итоговый рендеринг | Нет | По splat, точная граница |
Объёмы обрезки
Объём обрезки можно свободно масштабировать, перемещать и вращать, что помогает разработчикам обрезать сцену LCC в пространстве.
- Один Actor поддерживает до 65536 объёмов обрезки, в бесплатной редакции — не более 50; см. Редакции и лицензирование
- Поддерживаются формы бокса и сферы, обе можно масштабировать, перемещать и вращать
Примечание: обрезка влияет только на итоговый рендеринг. Обрезанные области по-прежнему участвуют в обходе узлов, загрузке и передаче в видеопамять как обычно. Поэтому обрезка не может уменьшить объём загрузки или расход видеопамяти; для управления этими затратами используйте способы из Руководства по производительности.
Шаги
- Разместите LCCActor/LCC2Actor и загрузите сцену.
- Перетащите
LCC Clipping Volumeв сцену.

Перетаскивание LCC Clipping Volume в сцену
- Переместите объём обрезки в нужное положение.
- Добавьте Clipping Volume в массив
ClippingVolumesв панели Details у Actor.

Результат обрезки Inside у объёма обрезки
Демонстрация

Перемещение объёма обрезки и наблюдение обрезки в реальном времени
Свойства
| Свойство | Описание |
|---|---|
| bEnabled | Включён ли он |
| Mode | Inside (обрезать внутри) или Outside (обрезать снаружи) |
| VolumeType | Box или Sphere |
Методы Blueprint
LCCComponent → AddClippingVolume
LCCComponent → RemoveClippingVolume
Примечание:
RefreshиSetUpdateComponentустарели. Данные обрезки читаются каждый кадр, поэтому изменение свойства или перемещение объёма обрезки вступает в силу на следующем кадре без их вызова.

Добавление, удаление и обновление объёма обрезки узлами Blueprint
Секущие плоскости
Секущую плоскость можно свободно масштабировать, перемещать и вращать, чтобы рассекать сцену по плоскости.
- Один Actor поддерживает до 65536 секущих плоскостей, в бесплатной редакции — не более 50; см. Редакции и лицензирование
- Поддерживается сечение вверх и вниз, а количество считается отдельно от объёмов обрезки
Примечание: сечение влияет только на итоговый рендеринг. Отсечённые области по-прежнему участвуют в обходе узлов, загрузке и передаче в видеопамять как обычно. Поэтому сечение не может уменьшить объём загрузки или расход видеопамяти.
Шаги
- Разместите LCCActor/LCC2Actor и загрузите сцену.
- Перетащите
LCC Section Planeв сцену.

Перетаскивание LCC Section Plane в сцену
- Переместите её в нужное положение.
- Добавьте Section Plane в массив
SectionPlanesв панели Details у Actor.
Демонстрация

Перемещение секущей плоскости и наблюдение сечения в реальном времени
Свойства
| Свойство | Описание |
|---|---|
| bEnabled | Включена ли она |
| Mode | Upside (сечение вверх) или Downside (сечение вниз) |
Методы Blueprint
LCCComponent → AddSectionPlane
LCCComponent → RemoveSectionPlane
Примечание:
RefreshиSetUpdateComponentустарели по той же причине, что выше.

Добавление, удаление и обновление секущей плоскости узлами Blueprint
Объёмы загрузки
Объём загрузки фильтрует данные до попадания в память: обход узлов оставляет только выбранные им узлы, а данные в отвергнутых областях вообще не читаются. Поэтому это единственный из трёх инструментов документа, который действительно уменьшает объём загрузки и расход видеопамяти, что подходит для выделения небольшой части из большой сцены.
- Поддерживаются формы бокса и сферы, обе можно свободно масштабировать, перемещать и вращать
- Один объём загрузки может влиять на несколько LCC Actor в сцене одновременно
- Возможность редакции Pro; без лицензии не действует и данные загружаются во всём объёме. См. Редакции и лицензирование
Примечание: фильтрация работает по узлам, поэтому граница грубее, чем у объёма обрезки. Когда нужна точная граница, наложите сверху объём обрезки с тем же преобразованием: объём загрузки уменьшает объём загрузки, а объём обрезки подрезает край.
Шаги
- Разместите LCCActor/LCC2Actor.
- Перетащите
LCC Load Volumeв сцену. - Настройте положение, поворот и масштаб так, чтобы объём охватывал сохраняемый диапазон.
- Добавьте Load Volume в массив
LoadVolumesв панели Details у Actor. - Загрузите сцену.
Примечание: фильтрация выполняется во время загрузки. После завершения загрузки изменение объёма загрузки требует повторной загрузки, чтобы изменение стало видно.
Свойства
| Свойство | Описание |
|---|---|
| bEnabled | Включён ли он |
| Mode | Inside (загружать только то, что внутри) или Outside (исключать то, что внутри) |
| VolumeType | Box или Sphere |
Два режима используют разные проверки границы:
| Режим | Проверка | Поведение на границе |
|---|---|---|
| Inside | Узел загружается только тогда, когда полностью лежит внутри объёма | Краевые узлы отбрасываются, поэтому сохраняемый диапазон немного меньше объёма |
| Outside | Узел исключается, как только он перекрывается с объёмом | Краевые узлы отбрасываются, поэтому исключаемый диапазон немного больше объёма |
Оба режима намеренно консервативны, что предотвращает мелькание областей при движении камеры и переключении LOD между родительскими и дочерними узлами.
Методы Blueprint
LCCComponent → AddLoadVolume
LCCComponent → RemoveLoadVolume