Под капотом: Улучшенная система материалов
В обновлении 1.60 мы представили улучшенную систему материалов для некоторых грузовиков в Euro Truck Simulator 2 и American Truck Simulator. И сегодня мы предлагаем вам заглянуть за кулисы и узнать, как создавалась эта функция!
Двоими главными разработчиками этой функции являются наши коллеги Даниэль и Мартин. Они внедряли и продолжают внедрять эту систему как для грузовиков в обеих играх, так и для легковых автомобилей в предстоящем проекте Road Trip для American Truck Simulator.
Даниэль — технический руководитель отдела транспорта
«Я работаю в SCS Software уже более тринадцати лет. Я начинал как 3D-генералист, затем работал 3D-художником по транспорту и руководителем команды по созданию транспорта. Сегодня моя должность — технический руководитель отделом транспорта.
Моя работа служит связующим звеном между графическими и техническими аспектами разработки. Я сотрудничаю с программистами для внедрения функций транспорта в движок, а также помогаю художникам настраивать эффективные рабочие процессы. Кроме того, я проектирую новые инструменты и технические улучшения.
Моя задача в работе над улучшенной системой материалов состояла в том, чтобы выявить проблему, предложить решение и совместно с программистами реализовать его в движке. Затем нам нужно было настроить практичный рабочий процесс для команды по транспорту, чтобы систему можно было последовательно применять и на других транспортных средствах. Программисты обеспечили необходимую поддержку в движке и шейдерах. Затем графические дизайнеры конвертировали и тонко настроили материалы для конкретных грузовиков».
Мартин — старший 3D-художник
«Я работаю старшим 3D-художником по транспорту. Также я выступал в роли руководителя по контенту (Head of Content) в проекте Road Trip. Я участвовал в подборе автомобилей и их конкретных модификаций, занимался сбором информации и препродакшеном, оказывал экспертные консультации, а затем непосредственно работал над созданием моделей машин. Кроме того, я помогал Дэну дорабатывать изменения в системе материалов.
Автомобили — моя давняя страсть, особенно спортивные и классические модели, в первую очередь американские. Благодаря этому я смог внести в проект собственный опыт и знания об американской автокультуре, истории и техническом развитии отдельных моделей.
Моей главной задачей был Ford Mustang 1967 года и всё, что связано с его визуальной и контентной подготовкой. Я участвовал в выборе конкретного автомобиля и его версии, проводил исследования, собирал референсы, консультировал во время сбора данных, а также непосредственно создавал модель и материалы.
В ходе разработки новой системы материалов я подготавливал и настраивал отдельные поверхности на "Мустанге". Вместе с Дэном мы использовали эту машину, чтобы проверить, как новое техническое решение ведет себя на практике и какие значения дают наиболее точный результат».
Как начался этот проект?
«Разработка началась ещё во время работы над проектом Road Trip. Салоны легковых автомобилей меньше и темнее, чем у грузовиков, поэтому недостатки прежней системы были в них заметнее.
Помимо прямого света, прежняя система не имела возможности отрисовывать освещение внутри салонов. В реальном мире значительную часть визуального восприятия составляет так называемый непрямой, или отражённый свет (GI). Однако игра вообще не работала с этой концепцией и не была под неё рассчитана. Мы понимали, что нам нужно это как-то изменить.
Вторая проблема заключалась в том, что интерьеры грузовиков содержат множество самых разных материалов, таких как ткань, кожа, пластик, окрашенные поверхности, металл и стекло. Прежняя система была не способна отображать их корректно, особенно при непрямом освещении; всё выглядело очень плоским.
«Проект Road Trip предоставил нам подходящую изолированную среду для разработки и тестирования. Однако с самого начала мы проектировали систему так, чтобы её можно было использовать и для грузовиков», — говорит Даниэль.
Что вам пришлось сделать перед тем, как непосредственно приступить к внедрению улучшенной системы?
«Нам требовалось в деталях изучить реальные автомобили и материалы, используемые в их салонах, проведя масштабную исследовательскую работу. Я изучал журналы, фотографии, доступную документацию и отдельные комплектации. В процессе сбора данных нам выпала возможность лично увидеть конкретный автомобиль, пообщаться с его владельцем и подробно задокументировать его устройство и внешний вид.
Было недостаточно просто определить, что определённая деталь интерьера сделана, например, из пластика, кожи или металла. Нам также нужно было изучить текстуру поверхности, степень блеска, то, как материал отражает свет, степень его износа, цветовой оттенок и различия между отдельными элементами.
Это исследование заложило основу, опираясь на которую мы смогли в дальнейшем оценить, соответствуют ли материалы в игре реальному автомобилю», — рассказал нам Мартин.
Нам также нужно было решить, в каком направлении двигаться. Одним из ключевых требований было сохранение производительности, поэтому мы искали подходы, не требующие сложных вычислительных операций, и подбирали методы, которые позволяли бы добиться хороших результатов с минимальным усложнением вычислений. Я считаю, что результатом наших усилий стало заметное улучшение графики при минимальном влиянии на производительность», — поделился с нами Даниэль.
Как выглядел процесс внедрения новой системы в игру?
«Нам требовалось внести изменения в движок, касающиеся того, как игра загружает и обрабатывает текстуры отражений. Текстура отражения — это, по сути, куб, каждая грань которого показывает отражение в определённом направлении относительно игрока. Использование такого подхода значительно эффективнее, чем вычисление реальных отражений света с помощью трассировки лучей. Мы внесли ряд изменений в код, чтобы получить прямой доступ к отдельным мипмапам (mipmap). Мипмап — это уменьшенная копия исходного изображения, которая обычно используется, когда текстурированный объект находится дальше от игрока, чтобы устранить неприятный эффект ряби (алиасинга). Однако в нашем конкретном случае более низкое разрешение автоматически дает более мягкое отражение. Это можно использовать для материалов, у которых поверхность не является на 100% глянцевой, а обладает физической шероховатостью, из-за чего отражение на материале становится более размытым.
Таким образом мы создали несколько уровней гладкости отражений: от идеально глянцевых поверхностей вроде хрома, через более мягкие отражения — например, на кожаной обивке сидений, — и вплоть до шероховатых, почти не отражающих материалов вроде тканей, где одна грань куба отражений имеет размер всего 2x2 пикселя. В нашем случае это заменяет карту облучённости (Irradiance map) и служит главным образом для переноса цветовой палитры окружающего освещения на данный материал (рефлекс/цветовой оттенок). Игра и так уже вычисляла сами мипмапы, а значит, это изменение практически ничего не стоит нам с точки зрения производительности — и это главная причина, почему мы решили использовать именно такой подход.
Наряду с изменениями материалов нам также потребовалось перебалансировать контраст и освещение по всей игре, чтобы устранить слишком темные участки и добиться более реалистичного ощущения света.
В отличие от прежнего решения, где текстуры отражений использовались только для высокоотражающих материалов (в частности, металлов), обновленная система применяет текстуру отражений абсолютно к каждому материалу в салоне грузовика. Однако они различаются по степени заметности отражения на итоговом изображении и по степени применяемой мягкости. Это гарантирует, что даже менее отражающие материалы — в особенности пластики — передают ощущение отраженного света, цветовой оттенок (рефлекс) и улучшенный контраст, особенно в затененных зонах салона. Теперь игроки заметят, что весь интерьер действительно реагирует на окружение грузовика: например, при поездке мимо деревьев часть салона возле окон приобретает легкий зеленый оттенок. Благодаря этому игра воспринимается гораздо более реалистично, чем раньше, и всё это — без ресурсоемких вычислений глобального освещения (GI).
Как только технология была готова, нам потребовалось определить, как именно настраивать отдельные материалы в новых условиях. Поскольку теперь каждый материал включает в себя компонент отражения, нам пришлось полностью перебалансировать все параметры для каждого из них. Чтобы существующие текстуры корректно работали с новыми настройками, нам также пришлось привести их цвета и зеркальные компоненты (specular) к стандартным значениям, которые мы установили в ходе наших многочисленных тестов.
Заключительным шагом для внедрения системы во всей игре было создание библиотеки материалов — чтобы нам не приходилось настраивать каждый тип материала отдельно для каждого автомобиля», — объясняет Даниэль.
Что было самым сложным при внедрении системы?
«Самой большой проблемой было разнообразие техники. Отдельные грузовики создавались в разное время, с использованием разных исходных данных, текстур и методов рендеринга. Не существует единого способа конвертации, который подошёл бы абсолютно всем грузовикам. Каждый готовый интерьер имеет свою структуру и требует индивидуального подхода», — говорит Даниэль.
«Кроме того, отдельные свойства материалов влияют друг на друга. Изменение отражательной способности или шероховатости (roughness) может улучшить внешний вид одной поверхности, но в то же время привести к тому, что материал будет вести себя некорректно в других условиях освещения. Или же материал, который выглядел правильно при дневном свете, может оказаться слишком глянцевым в тёмном салоне или вести себя неестественно при езде ночью. Поэтому нужно было постоянно искать баланс между реализмом, читаемостью и стабильным поведением. Цель заключалась не в том, чтобы сделать все поверхности более выразительными или блестящими, а в том, чтобы точно передать различия между ними.
Мы неоднократно перерабатывали многие из этих этапов в ходе разработки. Однако результатом стали не просто материалы для одного конкретного автомобиля, но также опыт и руководство, которые значительно облегчат работу над будущими машинами.
Процесс не был простым. Недостаточно было просто выставить несколько параметров по заранее подготовленной таблице. Многие значения нам пришлось подбирать самостоятельно, и вместе с Даном мы неоднократно тестировали их прямо в игре», — добавил Мартин.
Как вам удалось внести эти изменения без ущерба для производительности?
«Наши игроки используют самые разные конфигурации железа. Мы не хотели создавать визуальные улучшения, которые существенно снизили бы производительность или вовсе сделали бы игру неиграбельной для части аудитории. Поэтому система не строится на новой, ресурсоёмкой симуляции освещения. Она расширяет существующий пайплайн рендеринга и более эффективно использует уже имеющиеся данные».
Производительность непрерывно профилировалась в процессе разработки. Цель заключалась в том, чтобы добиться заметного визуального улучшения с минимальной нагрузкой на видеокарту и память. Более того, система настроена так, чтобы работать с определенным компромиссом даже на средних и низких настройках — в таких случаях, хотя отражения и не рендерятся в реальном времени, а некоторые преимущества (вроде реалистичного цветового отсвета от окружения) теряются, сами материалы всё равно выглядят реалистично и легко отличимы друг от друга», — говорит Даниэль.
На данный момент мы внедрили улучшенную систему материалов на четырёх грузовиках в ETS2 и ATS. Вместо того чтобы заставлять сообщество ждать, пока обновятся абсолютно все машины, мы продолжим постепенно вводить улучшенную систему материалов для остальных грузовиков. Это позволит вам наслаждаться улучшениями на некоторых тягачах уже сейчас, пока мы дорабатываем оставшиеся. Как объясняет Даниэль:
"Каждый грузовик требует индивидуальной подгонки, визуальной проверки и тестирования всех конфигураций при дневном свете, ночью, в дождь и в пасмурную погоду. Поэтому обновить весь автопарк одновременно было невозможно. Эта первая небольшая группа позволит нам проверить весь производственный процесс, сохранить качество и собрать отзывы игроков"».
Надеемся, вам понравился этот подробный разбор того, как мы работаем над улучшенной системой материалов. Не забудьте также добавить Ford Car Pack и RAM & Dodge Car Pack в свой список желаемого в Steam, чтобы опробовать эту функцию на автомобилях, когда они выйдут.
Подписывайтесь на наши страницы в X/Twitter, Instagram, Facebook, Bluesky, TikTok и YouTube, чтобы получать обновления о наших играх прямо в свою ленту! Или подпишитесь на нашу новостную рассылку, чтобы оставаться в курсе событий. До новых встреч и счастливого пути!
Источник - SCS Software's blog
