Форум

Mount & Blade II: Bannerlord. Глобальное освещение  

  RSS
Doktor_e5
(@admin)
Уважаемый Игрок Admin

Приветствую воинов Кальрадии!

Освещение - чрезвычайно важный аспект любой современной игры. При плохом освещении самые детализированные модели и текстуры кажутся тусклыми и безжизненными, в то время как хорошее освещение помогает объединять различные визуальные элементы на экране, обеспечивая более реалистичную и эстетически привлекательную полировку. Это то, что мы хорошо знаем, и именно это привело к появлению Global Illumination (GI) в нашем игровом движке некоторое время назад (о чем мы кратко упоминали в то время в нашем блоге "Обновление движка 1.4").

В последнее время мы работали над улучшением и интенсивной оптимизацией этой функции движка, поэтому нам хотелось потратить время на то, чтобы расширить эту тему и немного подробнее обсудить GI, охватывая наши требования, работу системы и затрагивая некоторые из трудностей, с которыми мы столкнулись при его реализации.

Итак, что такое GI? Проще говоря, GI - это система, которая моделирует, как свет отражается от поверхностей на другие поверхности, или, другими словами, непрямое освещение. Это позволяет свету, излучаемому источником, например факелом, взаимодействовать с окружающими объектами более естественным образом, при этом часть света поглощается объектом, а остальная часть отражается на других объектах. Конечный результат - гораздо более реалистичное представление о том, как свет действует в реальном мире.

В Bannerlord мы решили использовать решение GI, которое может работать с различными средами освещения, может работать на широком спектре аппаратного обеспечения, имеет низкое использование памяти и жесткого диска и требует меньше ручной работы для каждой сцены. С учетом этих требований мы решили использовать статическое решение, обеспечивающее передачу освещения в заранее определенных точках зонда.

Для нашей реализации мы черпали вдохновение из нескольких методов. В основном алгоритме освещения используется метод из предварительно рассчитанной передачи излучения для рендеринга в реальном времени в условиях динамического освещения низкой частоты (Sloan, et al, 2002). В дополнение к этому мы внедрили в игру офлайн трассировщик лучей, чтобы обеспечить правильное освещение в соответствии с основной правдой. После этого мы изменили некоторые уравнения, чтобы на игровой процесс не оказывалось негативного влияния (например, увеличивая окружающий свет факелов).

При использовании методов на основе зондов, таких как тот, который использует наш движок, основной проблемой является утечка света, которая может резко снизить качество изображения. Чтобы решить эти проблемы с утечками, мы используем алгоритм карты теней, описанный в слайде «Облучение и освещение» на слайде «Видимость» (Morgan McGuire, 2017). Однако наиболее сложной и трудоемкой задачей было внедрение процесса, который может автоматизировать размещение зонда, размещение карты теней световых утечек и процесс выпекания.

Во-первых, мы не хотели размещать зонды повсюду, так как это сэкономило бы огромное количество памяти и использование жесткого диска, что было одним из наших начальных требований к дизайну. Таким образом, для достижения желаемого визуального результата, при этом не забывая об использовании аппаратного обеспечения, наш автоматизированный процесс выпечки использует навигационную сетку для поиска позиций, которые могут пройти агенты. Затем из этих позиций отбрасываются лучи, чтобы найти видимые точки на сцене. Для всех этих точек автоматический процесс затем размещает датчики в виде сетки. После этого автоматический процесс назначает функции карты теней тем, которые могут привести к утечкам. Например, внешний зонд, который воздействует как на внутреннюю часть дома, так и на внешнюю, отобразит карту теней, чтобы предотвратить утечку. Наконец, функция передачи освещения рассчитывается для каждого размещенного зонда. Этот процесс выполняется для каждой комбинации уровней для городов и один раз для многопользовательских и внутренних карт.

Этот автоматический процесс выпечки может быть запущен через редактор или нашу внутреннюю систему интеграции, что экономит огромное количество времени для наших дизайнеров сцен! И хорошая новость в том, что это также будет доступно для мододелов и так же просто, как нажатие кнопки в редакторе сцены. Кроме того, дополнительное время редактирования оптимизируется многими расширенными операциями редактирования, такими как операции лассо и геометрического выделения и ярлыки в редакторе.

Мы очень довольны окончательными результатами. Наша реализация GI, безусловно, улучшает визуальные эффекты игры, добавляя некоторую визуальную глубину к сценам и делая среду более реалистичной, и все это с минимальным влиянием на производительность!

ОтветитьЦитата
Размещено : 12/11/2019 10:43
Теги темы

Оставьте ответ


 
Поделиться:
  
Работает

Пожалуйста, Вход или Зарегистрироваться