19 февраля 2018

Dagor Engine 5.0: свет и тени — Global Illumination, контактные тени, тени на эффектах

Сегодняшний выпуск наших дневников разработки расскажет о том, как обновлённый рендер Dagor Engine 5.0 придаёт объём картинке War Thunder. Работа света и теней!

Глобальное освещение (Global Illumination)

При рендеринге каждого кадра в War Thunder используются несколько алгоритмов освещения и затенения. В обновлённом рендере Dagor Engine 5.0 мы улучшим модель освещения с помощью алгоритмов расчёта глобального освещения в реальном времени (Realtime Global Illumination). Глобальное освещение — это общее название для техник освещения, учитывающих не только прямой свет от источника (англ. direct illumination), но и отражённый и рассеянный свет от различных поверхностей и  протяжённых источников света (таких как небо и облака). В игре появятся тени, отбрасываемые объектами от окружающего освещения и неба, благодаря чему общая картинка станет более объёмной и фактурной в тенях, а также появится рефлекс — отражённый свет от других объектов и ландшафта. И всё это в реальном времени, для огромных локаций War Thunder (средняя локация в WT больше 32х32 км), для разрушаемых и динамических объектов. Как и другие визуальные улучшения общей картинки в игре, параметры Global Illumination будут доступны в качестве опции в меню графических настроек и будут включены по умолчанию для максимальных настроек графики.

Глобальное освещение — это целый комплекс разных алгоритмов, крайне сложная и высокотехнологичная задача. Достаточно сказать, что на данный момент не существует ни одной игры или движка, в которых реализовано полностью динамическое глобальное освещение для огромных локаций. Для War Thunder не годятся алгоритмы, в которых объекты предполагаются статическими, или используется иной предварительный расчёт: десятки огромных локаций потребуют слишком много памяти и места на жёстком диске, а разрушаемые дома меняют геометрию мира слишком значительно. Потому некоторые из алгоритмов и улучшений, возможно, станут доступными для включения посредством собственных настроек спустя некоторое время после выхода обновления 1.77. Впрочем, большая часть изменений станет доступна игрокам сразу по выходу обновления.

Посмотрите разницу в отрисовке теней и ощущении визуального объёма с новым алгоритмом затенения в Dagor Engine 5.0.

 

Посмотрите, как это работает в сравнении с освещением (сверху), и как влияет на результирующую картинку (снизу):

 

Тени на эффектах

Эффекты часто стоят в стороне от остального фотореалистичного рендера, так как большей частью представляют собой некое упрощённое представление гораздо более сложных процессов, таких как дым и огонь. Потому рендер эффектов осуществляется в большинстве случаев отдельно. В Dagor Engine 5.0 мы реализовали расчёт затенения эффектов, таких как выхлопные газы или клубы дыма из горящего танка,  объектами окружения. Это придаёт эффектам больше объёма, а итоговая картинка выглядит более гармонично.

 
Скриншоты в большом разрешении:

Контактные тени

В нашем новом графическом движке Dagor Engine 5.0, который появится в обновлении War Thunder 1.77, мы представим алгоритм создания контактных теней, которые делают картинку более реалистичной и придают новые уровни глубины. С технической точки зрения алгоритм отрисовки контактных теней заключается в том, что при рендеринге каждого кадра каждый пиксель на картинке проводит трассировку луча на небольшое расстояние по направлению к источнику света. Трассировка проводится через другие, уже нарисованные на экране объекты. Если на пути луча появляется препятствие, то создаётся дополнительная тень.

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

Кроме травы, технология контактных теней позволяет придать большую глубину всем объектам вдали от игрока — например, оконные рамы, заклёпки на технике и другие объекты получают визуально более правильные субпиксельные тени, в отличие от классических способов наложения теней, когда тени на больших расстояниях отрисовываются только для крупных объектов.

 
Скриншоты в большом разрешении:
 
Скриншоты в большом разрешении:

Читайте также

Комментарии (268)

Пожалуйста, авторизуйтесь, чтобы оставлять комментарии

Cookie-файлы

На сайте используются файлы cookie и другие аналогичные средства. Если вы остаётесь на сайте после прочтения данной информации, это означает, что вы не возражаете против их использования.