Перейти к содержанию

Umbra

Краткая сводка информации

Что такое окклюзия?

Окклюзия — это процесс, при котором скрываются объекты, невидимые для камеры из-за перекрытия другими объектами. Это ключевая технология для оптимизации рендеринга: Невидимые объекты исключаются из рендеринга, что позволяет экономить ресурсы.

Что такое Umbra?

Umbra — это технология, которая управляет окклюзией и видимостью объектов в 3D-пространстве. Она помогает определить, какие объекты видны игроку, а какие можно исключить из рендеринга.

Как работает Umbra:

  • Разделяет сцену на части, используя пространственные структуры или специальные алгоритмы (например, фрустрационные пирамиды).
  • Анализирует, какие объекты нужно загрузить для рендеринга, а какие можно пропустить.
  • Оптимизирует ресурсы, обрабатывая только то, что реально нужно для отображения.

Что такое стриминг объектов?

Стриминг объектов — это процесс, при котором игра динамически загружает и выгружает объекты, основываясь на их видимости и актуальности. Вместо того чтобы загружать всё сразу, игра обрабатывает только те элементы, которые находятся в поле зрения игрока или рядом с ним.

Стриминг использует окклюзию для определения, какие объекты должны быть загружены, а какие — нет.

umbraScene: [CUmbraScene]

umbraScene отвечает за параметры umbra. Параметр umbraScene доступен для миров.

Он является ресурсом (Наследуется от CResource), файлы окклюзии хранятся внутри папки мира в файлах .w3occlusion а само определение umbraScene в .w3occlusiondef. Они генерируются движком автоматически и не требуют ручных модификаций.

CResource

Поскольку он наследуется от CResource, он так же имеет поля от CResource (importFile и importFileTimeStamp). Эти поля не функциональны (импортировать окклюзию не имеет смысла, она генерируется автоматически)

CUmbraScene

distanceMultiplier

  • Тип: Float
  • Параметр: Коэффициент расстояния для стриминга Umbra.
  • Описание: Определяет коэффициент для дистанции, на которой объекты обрабатываются системой Umbra.

Пример: Значение 1.5 означает, что Umbra будет учитывать объекты на расстоянии в 1.5 раза больше базового значения. Это может быть полезно для уровней с дальними объектами, которые должны быть обработаны для окклюзии.

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

localUmbraOccThresholdMul

  • Тип: String
  • Параметр: Путь к файлу w3simplex.
  • Описание: Позволяет указать для множителя порога отсечения локальных областей симплексное дерево.

Автор: grandvel

Документация поддерживается участниками сообщества REDkit RU