Когда вы едете по виртуальному городу, детали играют ключевую роль в создании ощущения реальности и погружения. Одним из наших последних дополнений к играм-симуляторам грузовиков является функция Parallax Interiors — инновационный способ рендеринга детализированных интерьеров через окна с помощью умной иллюзии. Это улучшает визуальную глубину зданий в Euro Truck Simulator 2 и American Truck Simulator, что вы, возможно, уже заметили в недавних выпусках, таких как дополнение Greece или наше событие «Возвращение в Winterland World of Trucks».
Сегодня мы подробно рассмотрим процесс создания Parallax Interiors и изучим исследования, разработку и внедрение, которые сделали эту функцию возможной. Мы поговорили с некоторыми членами команды, работавшей над этим проектом. Давайте дадим им возможность представиться!
«Привет, меня зовут Саша, и я работаю в отделе ресурсов ETS2. Моя основная задача — разработка методик для решения различных визуальных задач. Я сотрудничаю с другими отделами по вопросам, связанным с искусством, и иногда беру на себя разные роли в различных проектах. Во время разработки параллакса я выполнял роль нечто среднее между арт-директором и менеджером проекта, помогая формировать процесс и направлять команду».
«Привет, меня зовут Ян В., и последние пять лет я работал в SCS в основном над высокоуровневым графическим программированием, иногда занимаясь разработкой внутренних инструментов. Если говорить точнее, то большинство моих задач связано либо с исследованием и внедрением новых графических функций, либо с улучшением существующих, будь то материалы для моделей или эффекты постобработки».
«Привет, меня зовут Юрий Х., и я присоединился к команде SCS Software почти 3 года назад. Я работаю 3D-дизайнером в команде ETS Assets. В прошлом году я занимался конкретными задачами, такими как создание новых сцен меню, работа над проектом параллакса и улучшение интерьеров объектов».
«Привет, меня зовут Мартин Ч., я работаю программистом инструментов в SCS уже более 5 лет. За это время я в основном занимался поддержкой наших художников, создавая специализированные инструменты в Maya и управляя нашим конвейером активов вместе со своим коллегой и хорошим другом Петром Б. Одним из таких специализированных инструментов был наш так называемый «инструмент для внутренних окон», который позволяет художникам применять к активам наш новый шейдер для внутренних окон с эффектом параллакса».
Видение, стоящее за интерьерами Parallax
Что послужило мотивацией для создания этих новых интерьеров с эффектом параллакса? «Идея пришла в голову одному из наших коллег, Уэйву, которого вдохновило то, как в других играх, например в Forza, была реализована аналогичная технология». Саша рассказывает нам: «Он создал первый прототип, доказав, что такой подход может работать в наших играх. После этого мы усовершенствовали процесс и превратили его в полноценную функцию, так что большое ему за это спасибо!»
«Обычно говорят, что компьютерная графика в реальном времени — это сплошные иллюзии. Всякий раз, когда мы видим возможность улучшить визуальную составляющую в массовом масштабе без ущерба для производительности, мы считаем, что это особенно интересно», — объясняет Ян В. — «Поскольку мы далеко не единственные разработчики, создающие виртуальный мир, максимально приближенный к реальности, наблюдение за тем, как аналогичные технологии широко применяются с впечатляющими результатами в других играх, вдохновило нас на то, чтобы адаптировать их самостоятельно и, возможно, даже усовершенствовать».
«Наличие простого универсального способа создания и рендеринга реалистичных интерьеров зданий, надеюсь, позволит нам сэкономить время как при создании ресурсов (не нужно вручную создавать каждую комнату за каждым окном), так и при рендеринге — с помощью параллаксного отображения можно одновременно рисовать множество интерьеров, используя, помимо прочего, один фрагмент специально параметризованной геометрии. Учитывая, что на тот момент мы уже много лет использовали в наших играх крайне упрощённую версию этого эффекта, переход на более современный вид казался логичным решением.
С чего все это началось?
«На ранних этапах, задолго до того, как к работе подключились художники-исследователи и модельеры, мы начали с экспериментального этапа, — рассказывает Ян В. — Команда состояла из меня и Вава, которые занимались созданием первоначальных текстур и 3D-моделированием. Мы смотрели, что реально можно реализовать, составляли базовый список требований и процедурно повторяли то, что называется вертикальным срезом, — первоначальный прототип в движке, который используется для представления того, что можно реально реализовать в производственном процессе. В данном конкретном случае этот процесс заключался в том, чтобы взять существующий 3D-объект и адаптировать его для использования этой новой техники рендеринга».
«Прежде чем приступить к работе над созданием интерьеров с эффектом параллакса, наши программисты разработали шейдер, который мы сначала протестировали с помощью простых сцен с затемнением». Юрий Х. объясняет: «Как только шейдер успешно прошёл тестирование, наши исследователи провели обширное исследование, чтобы определить типы интерьеров, которые нам нужны, их размеры и количество. Только после этого мы приступили к полноценной разработке атласа».
“Нашей целью было охватить как можно больше вариантов использования с наименьшим количеством текстур и инструментов”. Саша объясняет: “Другими словами, нам нужно было спроектировать интерьеры, которые выглядели бы естественно и согласованно во всех странах, городах и типах зданий, как в ETS2, так и в ATS, сохраняя при этом максимально упрощенную реализацию. Это потребовало обширных исследований.
«Мы провели подробное исследование типов интерьеров, их пропорционального распределения и их значимости для обеих наших игр. Помимо самих интерьеров, наше исследование распространялось на различные типы штор, жалюзи, ставней, наклеек, рекламы и других сопутствующих элементов. Следующим шагом было создание этих интерьеров. Как только мы чётко поняли, что нам нужно, мы приступили к созданию атласов текстур для классификации интерьеров по типам. Это позволило нам создать варианты, подходящие для разных типов зданий, таких как административные офисы, квартиры, рестораны и магазины, сохраняя при этом эффективный и управляемый рабочий процесс».
Технология, инструменты и Код.
Реализация Parallax Interiors была бы невозможна без работы наших талантливых программистов и художников. Чтобы с Parallax Interiors было удобно работать, Мартин Ч., один из наших программистов, разработал инструмент Interior Window Tool для Prismtool — так мы называем наши внутренние инструменты в SCS. «Многие из них основаны на Autodesk Maya, которая используется для создания ресурсов для наших игр, включая грузовики и другие транспортные средства, здания, реквизит, дороги, растительность, персонажей и многое другое».
Мартин продолжает объяснять, как был создан этот специализированный инструмент: «Прежде всего, я хотел, чтобы он был простым в использовании и понятным. По сути, это инструмент, который помогает художникам в процессе UV-развёртки, во время которой художники определяют, как текстуры накладываются на объект. Таким образом, этот инструмент очень удобен в использовании. Художники видят обзор всех комнат, которые можно назначить группе граней (полигонов, то есть геометрии в 3D-сцене)».
«На первый взгляд может показаться, что это просто, но за кулисами инструмент должен определить, какие грани могут образовывать так называемый «портал» в одну комнату, исходя из их ориентации и близости друг к другу. Также есть дополнительная логика, которая пытается определить, могут ли грани находиться на одном этаже или их нужно разделить на несколько этажей. Кроме того, чтобы расширить возможности, я решил добавить кнопку «Рандомизировать комнаты», которая автоматически распределяет комнаты по окнам для большого количества граней. Это мое величайшее произведение, когда дело доходит до этого инструмента!”
«Ещё одной интересной задачей была адаптация инструмента в процессе его использования к различным изменениям, внесённым в шейдер интерьера Яном В., который постоянно вносил улучшения и оптимизировал его. Например, Ян добавил возможность отключать стекло на разных окнах. Позже он добавил возможность наклонять окна под любым углом. Таким образом, вы можете сделать окно в крыше или в земле, но с оговоркой, что комната будет наклоняться вместе с окном. Изначально инструмент не был разработан с учётом этих возможностей, и для их поддержки потребовалось внести некоторые изменения и провести интересные математические расчёты.
Как уже упоминалось, Ян отвечал за сам шейдер. Мы поговорили с ним подробнее о техническом аспекте этого проекта и о том, как он помогал его разрабатывать. «Секретный ингредиент, который здесь используется, — это работа в рамках чётко определённого проблемного пространства, — объясняет Ян. — Большинство интерьеров зданий, которые мы видим, можно геометрически представить в виде открытых коробок. То есть, если мы просто решим, что всё, что нам нужно знать о комнате для её рендеринга, — это её положение, размеры и текстура, то всё внезапно становится намного проще!»
«Работа с такой упрощённой моделью в первую очередь позволила мне реализовать рабочее решение в виде эффекта в реальном времени, который полностью основан на шейдерах и не требует много памяти для текстур. Другими словами, основная часть работы выполняется компактными программами, работающими на графическом процессоре, с очень небольшими внешними накладными расходами. Помимо базовой проекции текстур, та же процедура рендеринга также отвечает за имитацию правильного внутреннего освещения (в зависимости от времени суток), а также любых объектов, покрывающих внутреннее пространство, таких как стекло или полупрозрачные занавески на окнах».
«Прежде чем сделать этот эффект стабильной частью нашего набора инструментов, нам нужно было определить правильные технические ограничения и параметры, ориентированные на художников, сбалансировав производительность, визуальную точность и творческую свободу. Подготовить его к производству было непросто, потребовалось несколько версий инструментов и шейдеров, чтобы устранить препятствия, с которыми сталкивались художники при адаптации существующих моделей. Несмотря на трудности, конечный результат стоил затраченных усилий. Больше всего мне нравится в разработке графических функций свобода экспериментировать, сочетая художественное видение с решением сложных технических задач».
Дизайн интерьера
Поскольку в Euro Truck Simulator 2 и American Truck Simulator можно найти множество типов зданий, создание разнообразных интерьеров для наиболее распространённых магазинов, предприятий, жилых помещений и многого другого было важной задачей. Мы поговорили с Юрием Х., чтобы узнать больше о его роли в их создании. «Хотя у нас были подробные исследования, которыми мы руководствовались, в основном они служили для меня источником вдохновения», — объясняет Юрий. «Моей основной задачей было спроектировать каждый интерьер с нуля и подумать о том, как сделать освещение более разнообразным, поскольку для каждой сцены требовалось три варианта освещения для разных времен суток».
«Наши критерии выбора были примерно следующими: во-первых, определение типов атласа на основе категорий интерьеров (административные здания, рестораны, магазины, квартиры)», — объясняет нам Саша. «Затем разделение каждой категории по «ценовому диапазону», например, решение о том, сколько ресторанов должно быть элитными, а сколько — более доступными, и какие из них должны быть более распространёнными. Наконец, учёт размера каждого отдельного интерьера, размера каждой комнаты и того, как это повлияет на общую структуру атласа».
"На протяжении всего этого процесса мы должны были помнить об одном важном аспекте: атласы должны были быть как можно более общими, но при этом выглядеть уместно и правдоподобно в широком диапазоне сценариев, где будут использоваться эти интерьеры. После того, как макеты atlas были разработаны, обсуждены и одобрены, мы перешли к разработке каждого интерьера индивидуально."
«Когда всё было готово, я создал четыре рендера: три для настроек освещения и один для карты нормалей», — рассказывает Юрий. «Время, необходимое для завершения работы над интерьером, зависело от его размера, который мог варьироваться от 1 до 4 секций, и в общей сложности занимал от 1 до 3 дней».
«Мы столкнулись со множеством интересных проблем, — объясняет Саша. — Начнём с того, что у нас было лишь очень приблизительное представление о том, как создавать такие интерьеры, а значит, нам пришлось изобретать рабочий процесс на ходу. Параллаксное отображение, хоть и выглядит впечатляюще, имеет строгие ограничения. То, что вы видите в игре, — это не реальная геометрия, а, по сути, рендеринг, спроецированный на внутренние стены куба. Из-за этого при определённых углах обзора и в конкретных условиях иллюзия может разрушаться, демонстрируя заметные искажения в мебели, освещении и других визуальных артефактах.
«К счастью, мы уделили много времени подготовке к производству и изучили, как аналогичные технологии использовались в других играх. Для меня лично ключевым приоритетом было свести эти искажения к минимуму. Мы хотели разработать набор инструментов, который выдержал бы испытание временем и оставался актуальным на протяжении многих лет как с точки зрения визуального качества для игроков, так и с точки зрения простоты использования для наших художников. Помимо технических сложностей, что действительно сделало этот проект особенным для меня, так это возможность сотрудничать с коллегами из разных отделов. Было вдохновляюще видеть, сколько усилий и энтузиазма все вложили в проект с параллаксом — даже зная, что в итоге это будет лишь незначительное улучшение фона..."
Будущее Параллакса
Будем ли мы и дальше видеть параллакс-интерьеры в будущем и, возможно, больше разнообразия и дополнений? «Да, конечно!» — говорит нам Саша. «Новые интерьеры будут появляться в грядущем контенте, и мы также планируем переработать некоторые старые ресурсы, интегрировав в них параллакс-интерьеры. Со временем эти интерьеры станут стандартной функцией во всей игре. Что касается новых атласов, то вы можете ожидать их появления в ближайшее время!» Юрий также делится с нами небольшим тизером: «Вот немного инсайдерской информации: в этих новых интерьерах с эффектом параллакса будет использоваться технология, которая позволит применять их не только за «окнами», но и в открытых пространствах, например, в гаражах, что ещё больше улучшит визуальную составляющую нашей игры».
«Помимо общих атласов, у нас также есть возможность создавать специализированные интерьеры, например, для сезонных мероприятий», — объясняет Саша. «Возможно, вы заметили некоторые изменения в рождественской карте этого года, где мы создали атлас интерьеров на праздничную тематику. В будущем вы можете ожидать больше подобных обновлений, связанных с сезонами и мероприятиями. Кроме того, мы обсуждаем расширение функциональности самого шейдера параллакса. Я бы с удовольствием рассказал об этих планах, но... давай пока сохраним это в секрете. ;)"
Мы хотели бы поблагодарить вас за то, что вы нашли время прочитать всё о Parallax Interiors, и надеемся, что вы узнали немного о процессе переноса этих интерьеров в виртуальный мир! Мы попросили команду поделиться с вами заключительным посланием.
«Спасибо вам за вашу поддержку, энтузиазм и преданность нашей игре. Видеть, как вам нравится то, что мы создаём, — лучшая мотивация для всей нашей команды. Мы всегда стремимся сделать каждый новый контент лучше и интереснее, и нам очень приятно знать, что наша работа находит отклик в ваших сердцах. Любите то, что вы делаете, будьте открыты новым возможностям и наслаждайтесь каждым моментом. Исследуйте, экспериментируйте и никогда не переставайте искать вдохновение. Спасибо, что вы с нами — впереди ещё много интересного!»
Если вам понравился этот блог Under the Hood, обязательно оставьте сообщение для команды, мы уверены, что они оценят ваши комментарии! Мы с нетерпением ждём новых тем для блога Under the Hood в будущем. Если вы хотите прочитать предыдущие статьи, вы можете найти их здесь. До новых встреч, продолжайте в том же духе!
Подготовлено и переведено Azverin Driving.