Предварительная передача освещения - система GI
Мы представляем новую систему глобального освещения (GI) нашего движка. Она основана на предварительно приготовленной системе, называемой «Precomputed Radiance Transfer» (далее - PRT). Этот метод позволяет создать локальную среду (освещения) в сцене и оптимизировать ее поведение во время работы игры. Эти данные не зависят от atmospheres (погоды в сцене). Таким образом, мы можем осветить сцену одними и теми же заготовленными данными для каждой атмосферы.
Освещение в такой сцене состоит из зондов - точечных источников света, разбросанных по сцене.
С GI | БЕЗ GI |
Процедура подготовки
Подготовка сцены разделена на пару частей:
- Во-первых, нужно разместить border probes (границы зондов), чтобы определить границы GI сцены.
Примечание 1: если вы минимизируете границы GI в максимально возможной степени (не расширяя их до отдаленных мест, где нельзя перемещаться), вы можете уменьшить размеры сетки и, таким образом, у вас будет более точное освещение внутри города, где это наиболее важно. Для городских сцен мы обычно используем сетку размером 1,5 метра в ширину и 2,5 метра в высоту.
Примечание 2: для пикселей за пределами границ GI мы используем fallback probe (резервные зонды) из сцены. По умолчанию это самый высокий активный зонд рядом с левым углом порядка GI. Сценодел может выбрать любой другой зонд из сцены, сначала выбрав зонд и установив флажок «Fallback Probe» в пользовательском интерфейсе.
- Далее создаются зонды GI. Начальные положения зондов вычисляются автоматически с использованием навигационного меша сцены. С помощью навигационного меша мы размещаем зонды там, где агенты могут перемещаться, а также везде, где видны эти точки навигации. Зонды создаются в трехмерной сетке. Направленные данные окружения рассчитываются для каждого положения зонда. Используя эти значения окружающего света, каждый пиксель на экране освещается 8-ю ближайшими зондами. В некоторых случаях, когда освещение между соседними зондами имеет очень большую разницу, может возникнуть утечка света или тени. Чтобы исправить эти проблемы, мы рендерим карты теней от зондов таким же образом, как точечные источники света. Зонды с картами теней называются «Зондами Видимости». Существует предел для этих датчиков видимости, который составляет 2048, из-за проблем, связанных с использованием памяти. На этапе автоматического размещения система также пытается найти наиболее вероятные места утечки и назначить местные зонды в качестве Зондов Видимости, учитывая разницу в окружающем освещении. Для дополнительных исправлений утечек, система оставляет последние 5% предела Видимости Зонда пустым, чтобы сценодел мог исправить оставшиеся проблемы с утечками.
Файлы PRT
Как и система данных редактирования сцены, данные PRT делятся на две части. prt_data.bin находится внутри папки SceneObj и представляет собой сжатую версию, в которой отсутствуют какие-либо данные для редактирования. Этот файл следует отправить в управление источником (source control). Другой файл - это файл данных редактирования. Он очень большой (около 2–3 ГБ) и автоматически отправляется в папку Edit Data внутри Network (сети). После открытия предварительно заготовленной сцены в редакторе загружаются только сжатые данные. Чтобы иметь возможность редактировать данные заготовки, вы должны загрузить данные редактирования с помощью кнопки «Load» на панели «General Info» в PrtInspector.
Важное примечание: после любых изменений данных prt не забудьте сохранить данные с помощью кнопки «Save» на панели «General Info» в PrtInspector.
PRT операции
- Load: загружает данные редактирования с сервера.
- Save: сохраняет текущие данные редактирования на сервере.
- Auto Height Boundary: автоматически регулирует высоту граничных зондов PRT до минимума/максимума сцены.
- Bake Single Level: заготавливает сцену с текущими уровнями, следует использовать для внутренних сцен.
- Bake All Levels: заготавливает сцену с заранее определенными комбинациями нескольких уровней (а именно: level-1/level-2/level-3 and siege/civilian).
Параметры размещения зонда:
- Grid Width: ширина сетки, определяет размер ячейки сетки датчика в плоскости XY. Для городов можно использовать 1.5. Для сцен с интерьером вы можете использовать от 0,5 до 1,0.
- Grid Height: высота сетки, определяет высоту ячейки сетки датчика. Для городов следует использовать значение около 2,5. Для сцен с интерьером вы можете использовать от 0,5 до 1,0.
Инструменты выделения:
Для быстрого и плавного редактирования зондов реализованы различные инструменты выделения.
- Select All: выделяет все зонды.
- Grow: увеличивает выделение, чтобы включить соседние зонды в плоскости XY.
- Shrink: сжимает выделение, чтобы включить только внутренние соседние зонды в плоскости XY.
- Fill: Находит внутренние зонды текущей выбранной группы зондов и выделяет их.
- Select Border: Находит и выбирает границы зондов текущего выделения.
- Select Inner Border: Находит и выбирает внутренней границы текущего выделения.
- Select Outer Border: Находит и выбирает внешней границы текущего выделения.
- Lasso Tool: мы реализовали инструмент лассо для легкого выбора группы зондов. Его можно запустить, нажав «R», и выключить двойным кликом, или снова нажав «R».
Инструменты видимости
- Show Active Probes: показывает всех активных зондов.
- Show Deactive Probes: показывает неактивные зонды.
- Show Visibility Probes: показывает датчики видимости (те, которые рассчитаны для предотвращения утечки).
- Level To Show: выбор уровня Z для отображения. -1 означает все уровни.
- Show Probe Radius: определяет радиус зонда для отладки визуализации.
- Box Tool: включает режим, в котором вы находитесь.
Примечание: Эта система отображает только ближайшие 100 зондов относительно камеры.
Полезные горячие клавиши
- Left Ctrl + X: включить/отключить выбранные зонды.
- Левый Ctrl + C: переключает статус «Видимость зонда».
- Левый Alt + ЛКМ: выбирает зонды, которые влияют на пиксель (очень удобный инструмент для устранения проблемы утечки, выберите пиксель и используйте горячую клавишу выше, чтобы исправить проблему)
Комментариев 0
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.