Пару слов о движке ELEX
Модератор немецкой и английской ветки форумов Elex задал Пираньям несколько принципиально важных вопросов относительно развития и усовершенствования двига в их новой игре. Мы получили от Пираний очень подробные ответы на все наши вопросы, за что им огромное спасибо!Ravenhearth написал масштабную статью об истории развития движков в играх Пираний, которая, кстати, привлекла внимание нескольких крупных немецких и англоязычных изданий.
Мы предоставляем вашему вниманию фрагмент этой объемной статьи, посвященный конкретно двигу в Elex.
Автор - Ravenhearth, перевод - PontifEx
Risen 3: Enhanced Edition послужило подготовкой к Elex, игре, которая выйдет в первом квартале 2017 на Playstation 4, Xbox One и Windows, начиная с седьмой версии. В этот раз издателем выступает уже не Deep Silver, а THQ Nordic (бывшая Nordic Games). Elex обещает быть постапокалиптической научно-фантастической RPG с полностью открытым миром, в 1.5 раза превосходящим размер мира Gothic 3. Piranha Bytes (далее – PB) снова сами занимаются портированием игры и последовательным улучшением игрового движка, чтобы обеспечить те возможности, которые будут совпадать с их представлением об игре – и мы смогли получить эксклюзивную информацию от PB о внесённых в игровой движок изменениях. PB еще сильнее улучшили технологию стриминга – ни один загрузочный экран не должен нарушать игровой процесс. Для этого PB разделили мир на статические и динамические объекты, и статические объекты: а) не перемещаются; б) не содержатся в сохранениях. Статика игрового окружения содержится в памяти и загружается в фоне, в то время как динамическое окружение загружается при старте игры (что благотворно сказывается на производительности). С целью увеличить преимущества многоядерных систем PB распараллелили весь рендеринг для Elex. Кроме того, игровая логика также обсчитывается параллельно с рендерингом. Основанная на вэйпойнтах система нахождения пути была совмещена с системой, основанной на полигонах, что позволит NPC перемещаться по всему игровому миру.
Огромный скачок был совершён и в графике, т.к. впервые применяется DirectX 11, предлагающий для PB куда большее число возможностей в сравнении с DirectX 9. PB вовсю используют Direct Compute, возможность записи в любую точку внутри буфера или текстуры (запись со случайным доступом). Таким образом, становятся возможными эффекты вроде глобального объёмного освещения and Line-Sweep Ambient Occlusion (прим.: одна из моделей обработки теней), что невозможно было бы реализовать с помощью привычных пиксельных шейдеров. Система объёмного освещения была полностью переработана, как говорят PB, теперь она основана на физической модели. В отличие от Risen 3, в Elex все источники света, тени и глобального освещения будут включены в объёмное освещение. Для улучшения производительности используются вычислительные шейдеры, к примеру – при фильтрации или обсчёте occlusion culling (прим.: система, позволяющая демонстрировать на экране только видимые игроку объекты). Кроме того, PB реализовали возможность поддерживать тесселяцию объектов из любого материала.
Рендеринг был перекинут на рендерер Forward+. Он требует куда меньший объём памяти в сравнении с отложенным рендерером в Risen 3, т.к. Forward+ сразу создаёт итоговую картинку. Также Forward+ куда более прост в интеграции особых материалов, таких как волосы, кожа, и т.д. (нуждающихся в физически точном шейдинге). Прозрачные и непрозрачные объекты могут обрабатываться в равных условиях. С Forward+ также вполне возможно и использование классического MSAA (сглаживания), что гораздо сильнее влияло бы на производительность и объёмы требуемой памяти при применении отложенного рендерера. В Elex возможно совмещение с SMAA или FXAA.
Новым графическим эффектом стала также глобальная иллюминация (ГИ), с помощью которой обсчитывается непрямое освещение, в результате чего графика выглядит намного реалистичнее. Из-за того, что обсчёт ГИ в реальном времени сильно влияет на производительность, во многих играх ГИ просчитывается заранее, а игры со сменой дня и ночи часто вообще не используют ГИ. Реализация ГИ вместе и светового цикла в Elex, таким образом, представило собой достаточно трудную техническую задачу. PB использовали сразу несколько подходов: для карт диффузии они заранее создали неструктурированную сетку точек освещённости, и каждая точка содержала данные сразу по нескольким параметрам, что было необходимо для воссоздания освещения в текущих условиях прямо во время игрового процесса. После этого из точек освещённости с помощью интерполяции на тетраэдральной сетке создаётся объёмная фигура, так что непрямое освещение можно просчитать для любой точки поверхности. Даже более того, PB предотвратило прохождение непрямого света через стены, что является типичной проблемой для основанной на объёмах глобальной иллюминации. Для воссоздания отражений PB просчитывают кубические карты для разных точек пространства, специально подобранных для текущего освещения и интерполированных с помощью сетки, уже используемой для диффузного освещения.
Ещё одним улучшением в Elex станет физически правдоподобная камера – виртуальная камера, работающая в соответствии с физическими законами. Определённые зависящие друг от друга переменные, такие, как открытие линзы и происходящее вследствие этого размытие изображения – симулируются в соответствии с физикой. Ambient Occlusion тоже было улучшено: игрок сможет выбрать между Horizontal Based Ambient Occlusion (HBAO) и Line-Sweep Ambient Obscurance (LSAO). Оба варианта относятся к технологии Far Field Ambient Occlusion, в свою очередь являющейся подтипом SSAO. HBAO подходит для слабых систем, но LSAO предлагает заметно лучшее качество картинки. В процессе расчётов, лучи расходятся во всех направлениях, обрабатываясь в соответствии с подходящей глубиной резкости. Также, впервые для игр PB, трава будет отбрасывать тени на саму себя и на своё окружение, что заставляет её выглядеть более реалистично и бесшовно интегрировать её в окружение. Все модели, включая персонажей, теперь более детализированы, текстуры получили гораздо большее разрешение, а анимации стали более правдоподобными. Elex, однако, не будет поддерживать DirectX 12 или Vulkan, так как оба API не были доступны на старте разработки, а теперь у PB уже нет времени на их интеграцию. Тем не менее, по словам PB, Vulkan является интересной альтернативой для DirectX.
http://forum.worldofplayers.de/forum/threads/1474888-Пару-слов-о-движке-Elex
Еще на тему