Моды - Euro Truck Simulator 2 :: Новости

Под капотом: Новая система Освещения


Изменения, которые мы вносим с обновлением 1.40 как для American Truck Simulator, так и для Euro Truck Simulator 2, уже некоторое время были видны публике в сборках открытого бета-тестирования, которые все еще продолжаются. Безусловно, наиболее заметным изменением является новая система освещения, которая оказалась для нас крупнейшей графической доработкой за последние годы. В сегодняшнем сообщении блога мы хотели бы подробнее рассказать о том, через что нам пришлось пройти, чтобы это изменение произошло; давайте еще раз заглянем под капот.

Да будет свет!

Подход нашего 3D-движка к представлению света и цвета в сценах - и в буферах рендеринга, которые в конечном итоге отображаются на экране, - был разработан более десяти лет назад. Это была эпоха, когда современные технологии должны были представлять все значения RGB в числовом диапазоне 0–255, чтобы поместиться внутри байта информации. Вот как были определены все значения, будь то в текселе карты текстуры («кожа» 3D-объекта, дерева, транспортного средства или скайбокса) или в кодировке интенсивности источника света (от задних фонарей автомобиля до уличные фонари, вплоть до яркости солнца), и объединение всего этого на этапе рендеринга в пиксель; это снова было представление в буфере дисплея, которое должно было отображаться на экране, только с 256 оттенками каждого основного цвета.

В последние годы стремительный рост доступной памяти в 3D-ускорителях, прогресс в вычислительной мощности и гибкость языков затенения для программирования операций 3D-карт с фрагментами открыли путь для хранения и вычисления значений цвета и света с гораздо более высокой точностью и диапазоном - с числами с плавающей запятой. Вместо простого наложения операций цветового фильтра, что было, по сути, всеми уловками, которые у нас были в эпоху 8-битных цветовых компонентов, переход на использование вещественных чисел - настоящая революция в том, как игровой движок может действительно представлять источники света в реалистичных диапазонах и соотношениях. В реальном мире разница между силой света лампочки и солнечным светом составляет много порядков. Если мы сможем правильно хранить значения интенсивности источников света и, что более важно, выполнять все операции света с поверхностью в их надлежащих диапазонах значений без большой потери точности, мы можем получить истинный высокий динамический диапазон (HDR) свет в графическом конвейере. Когда мы начали экспериментировать с новой техникой около 18 месяцев назад и увидели первые результаты, для нас не было пути назад, мы знали, что хотим этого в движке.

Что нового?

Нам пришлось начать с источников света (и какое-то время мы надеялись, что этого будет достаточно). Каждый источник света теперь определяется с помощью реалистичного значения, полученного из реальных измерений (мы сделали тонну выборок с помощью измерителя освещенности в различных условиях дневного света и погоды) и справочных таблиц. В реальности, как и в игровом мире сейчас, десятки тысяч единиц люкса теперь освещают дневные сцены, в то время как ночью окружающая яркость приближается всего к нескольким единицам люкса. Базирование всех значений источника света на реальности дает нам гораздо больше уверенности в отличие от старых дней, когда новый свет просто вписывался в систему. Это уже не вопрос о том, должно ли это быть 150 или 170 без фактического значения для ценностей. Теперь мы знаем, и у нас есть столы, чтобы выбрать для уличного фонаря или неонового света на заправке. В формулах расчета света мы теперь можем использовать правильное квадратичное затухание падения, чтобы свет вел себя физически правильно. С более высокой точностью мы можем даже ввести небольшое случайное изменение интенсивности света для других идентичных источников света, чтобы имитировать ночное ощущение улицы, не имея неестественно идентичных ламп.

Когда все вычисления внутреннего освещения выполнены, мы должны скорректировать результирующие значения для экрана, имитируя экспозицию камеры. Подобно современной камере в вашем мобильном телефоне, нам нужно принимать все богатые значения и разнообразие падающего света - солнце или тень, раннее утро, полдень, сумерки или глубокую ночь - и «сжимать» или «расширять» значения. в диапазоне, соответствующем экрану. Наша система эмуляции экспозиции имеет решающее значение для окончательного внешнего вида игры - это частично физика, но также частично и субъективное художественное восприятие. Он должен динамически регулироваться не только в зависимости от входящего света из игрового мира, но также должен учитывать разницу между светом внутри и снаружи кабины транспортного средства, чтобы приборы на приборной панели были удобочитаемыми. Человеческий глаз - это невероятное творение, способное приспосабливаться и адаптироваться к широкому диапазону интенсивности света при переключении фокуса между объектами. При анализе гистограммы освещенности для каждого кадра и между кадрами нам пришлось использовать много умной математики, чтобы уместить все эти значения в неизбежно ограниченный динамический диапазон и цветовую гамму экрана, чтобы сделать все, что изображено, правдоподобным и различимым. Некоторые улучшения были вишенкой на вершине, например, тот факт, что с внутренним диапазоном буферов с плавающей запятой кубических карт мы можем получить гораздо более блестящие отражения от глянцевых поверхностей, таких как водоемы, стекло или автомобильная краска. Мы с радостью прошли этот путь разработки в небольшой команде, пока не осознали, что, хотя промежуточные результаты были многообещающими, мы не сможем добиться этого без повторной балансировки ВСЕХ существующих материалов / текстур на всех игровых объектах. Когда луч света падает на поверхность любого объекта, то, что отражается или преломляется, зависит не только от свойств падающего света, но в значительной степени от свойств поверхности объекта. За многие годы разработки мы накопили десятки тысяч текстур, некоторые из фотографических источников в различных настройках, некоторые нарисованы вручную, некоторые в процессе процедурной генерации с помощью различных интеллектуальных инструментов. Шли годы, создание этих источников подчинялось различным школам мысли или различным конвейерам творчества, но система «старого света» удерживалась вместе пресловутой изолентой и в любом случае была достаточно неточной, чтобы выявить определенные дисбалансы, которые присутствовали. Новая система эмуляции экспозиции намного более чувствительна и просто требует физически правильных значений альбедо яркости. Наша бетонная поверхность больше не может быть серой, а дерево не может быть красивым и зеленым. И это было тогда, когда для капитального ремонта пришлось задействовать подавляющее большинство нашей команды художников.

Что нужно было изменить?

После того как наша небольшая новаторская кросс-дисциплинарная команда реализовала весь необходимый код и изменения шейдеров графического процессора, на что потребовалось много месяцев экспериментов, нам пришлось привлечь гораздо больше людей. Во-первых, нам пришлось перенастроить все источники света в мире и фары всех транспортных средств в соответствии с новой логикой. В некоторых случаях это было относительно тривиальное числовое преобразование где-нибудь в таблице. В других случаях от дизайнера карты могло потребоваться повторное посещение определенного места для внесения корректировок вручную. Во многих случаях это означало, что игровой объект, такой как целая фабрика или склад с предопределенными источниками света, нужно было повторно открывать, настраивать и повторно экспортировать в 3D-инструменте, таком как Maya. Мы говорим о тысячах и тысячах таких ретушей, в некоторых случаях включающих не только несколько десятков «чисел», определяющих источники света, но и серьезные изменения в картах освещения объектов, где для лучшего вида были «запечены» поддельные тени и световые эффекты в старой световой системе. Наконец, на несколько недель большинству всех наших команд пришлось прекратить работу над чем-либо еще, связанным с нашими будущими проектами, и изучить все игровые объекты, растительность, транспортные средства и эффекты; повторно балансировать вещи, снова и снова, чтобы синхронизировать их в общей согласованной справочной таблице альбедо. Нам пришлось пересмотреть основы многих подсистем, в частности, фары и лампы автомобиля, которые потребовали многих итераций и тонкой настройки, чтобы они хорошо смотрелись при различных настройках дневного света. У нас есть новый набор скайбоксов с более высоким разрешением, а также немного более широкий выбор погоды. В конечном счете, ни один камень не остался незамеченным, поскольку нам пришлось оценивать и корректировать каждый элемент игры.

Что все это значит?

Новая система освещения и начало нашей новой физической модели освещения - важный шаг на пути к полной и лучшей физической модели всего мира в наших играх. Мы еще не совсем подошли к настоящему физическому рендерингу, но обновление 1.40 представляет собой важный шаг в правильном направлении. Очистка старого искусства и основание всей силы света и операций на фундаментальной физике, наконец, сделают возможной будущую системную работу в этой области. Как и многое другое в долгосрочном развитии, этот шаг - небольшая революция, но в то же время это всего лишь веха на пути к большему видению.

С точки зрения художников-графиков (но это касается и авторов модов!), Мы представляем новую концепцию создания и поддержания всего игрового арта «под контролем» и в балансе с остальным артом. Материалы, основанные на фотографиях, которые часто используются в качестве источников внутриигрового искусства, теперь должны пройти процесс калибровки, прежде чем их можно будет применить, в противном случае поверхность может оказаться слишком темной или слишком яркой, что повлияет на экспозицию и восприятие общей сцены. Часто стоит изучить альтернативные методы создания материалов, такие как процедурная генерация с высоким разрешением в таких инструментах, как Substance Designer. Теперь системе рендеринга движка уделяется больше внимания; вместо имитации и запекания в моделях тонких теней и световых эффектов. Между новым светом и SSAO наш шейдерный код теперь играет большую роль в создании окончательного вида; это приводит к немного меньшей ответственности, контролю и, возможно, работе со стороны художника. Это может быть как хорошо, так и плохо, в зависимости от того, чего вы пытаетесь достичь в каждом конкретном случае.

Как и в случае с каждым крупным изменением, было множество проблем с прорезыванием зубов, множество тупиков, из которых нужно было повернуть назад, и количество усилий, через которые мы прошли, намного превзошло ожидания, которые мы имели год назад. Впереди у нас еще есть открытая бета-версия, чтобы сгладить последние морщины. Но даже сейчас мы очень уверены, что изменения стоят всей напряженной работы. Просто подождите, пока вы не поедете на своем грузовике ранним утром вдоль побережья Италии или красивым поздним днем ​​в Швеции, в моросящий дождь в штате Вашингтон, в жаркий полдень в Испании или подъедете к хорошо освещенной стоянке для грузовиков. глубоко в ночи. На протяжении всего процесса изменений мы изо всех сил старались не вызывать значительного увеличения нагрузки на CPU или GPU. Некоторые из новых эффектов имеют немного более высокую стоимость производительности, но в целом мы считаем, что изменения очень хорошо сбалансированы или допускают разумные компромиссы в вариантах игры, чтобы сохранить производительность на приемлемом уровне. Мы определенно не хотим терять игроков и фанатов, которые играют в наши игры без новейшего оборудования, слишком сильно нажимая на графические эффекты. Мы с нетерпением ждем возможности предложить вам дальнейшие улучшения и новые функции, так что держитесь за свои рули!

Основные внутренние изменения

  • Сцена освещена с использованием реальной интенсивности (освещенность: десятки тысяч люкс днем, десятки люкс ночью).
    • Чтобы задействовать соотношение света - восходящее солнце затмевает фонари уличных фонарей и фары грузовиков и т. Д. Это означает, что нам пришлось настроить все источники света, а также отрегулировать каждый излучающий материал в игре.
  • У нас есть новая функция отображения на экране для лучшего художественного контроля (экспозиция, контраст, палец, плечо)
    • Нам нужно было передать эти реальные значения интенсивности на экран компьютера так же, как работает экспозиция камеры.
  • Улучшенная и более чувствительная гистограмма для выбора экспозиции
    • Это связано с тем, что фактическая экспозиция выбирается по-разному для каждой сцены, и это также зависит от разных уровней освещенности и текущего типа погоды.
  • Источник света (уличные фонари, автомобильные фары) меняется.
    • Мы переключили источники света на более физическое затухание («обратное квадратичное затухание»).
    • Мы находимся в процессе перехода на конфигурацию, основанную на физических единицах, чтобы уменьшить количество догадок.

Но также много мелких визуальных настроек

  • Пересчет отражения
  • Отражения в витринах и гладкие поверхности лучше соответствуют времени суток и погоде
  • Улучшенное поведение отражения
  • Краска для грузовиков, витрины и стекло в целом
  • Солнце горизонт тень
  • Видимость, когда солнце встает или садится
  • И еще миллион мелких настроек, исправлений и изменений.

Как вы уже понимаете - все это было огромным объемом работы для нашей команды. Первоначальная яркая искра (каламбур), которая сделала все это возможным, исходила от небольшой команды программистов и художника по визуальным эффектам (на фото ниже). Они продолжали взламывать, повторять и разрабатывать планы до тех пор, пока вся команда не стала «легкой», и все, что оставалось делать, - это просто потратить много лет дополнительных человеко-часов, чтобы приспособить все к новой логике.

Новая световая система, как и реализация поддержки FMOD для SFX-части наших игр, все еще находится в стадии доработки, полировки и настройки. И впереди еще много работы. На данном этапе мы чувствуем, что он уже более или менее в презентабельной форме, и вы тоже можете испытать это, если решите попробовать его в открытой бета-версии прямо сейчас в Steam.

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