Как мы это сделали
В игре The Chase представлен футуристический пейзаж, по которому два героя проносятся на гравитационных мотоциклах. Их отчаянная, головокружительная поездка намекает на более глубокую предысторию конфликта и страсти.
Вот как мы воплотили его в жизнь.
Персонажи
Чрезвычайная детализация персонажей
Как и во всех историях с персонажами, дьявол кроется в деталях. Именно поэтому мы создали каждого персонажа с огромным количеством вершин - 40 000. Это необычайно высокое количество поликов для персонажей даже по меркам консолей текущего поколения и игр для ПК. Лицо и тело каждого персонажа имеют несколько текстур размером 2048x2048 для цвета кожи, отражения, карт нормалей и т.д.
Реалистичная кожа
Вы обратили внимание на кожу персонажей? Мы добились исключительной реалистичности, внедрив шейдеры для кожи с подповерхностным рассеиванием (SSS), которые размывают входящее освещение в пространстве экрана, этот процесс также известен как диффузия в пространстве экрана. Мы взяли многое из того, что узнали в The Butterfly Effect, и оптимизировали это для мобильных GPU.
При расчете освещения динамических объектов мы учитывали экономию энергии и эффект Френеля, а также использовали распределение Бекмана для спекулярной составляющей как для кожи, так и для металлов.
Чтобы придать блеск металлической краске ховер-байка и другим отражающим поверхностям, мы адаптировали систему кожи для использования с материалами с низким коэффициентом рассеивания.
Вместо того чтобы использовать полноэкранную постобработку для достижения блума, мы применили наш подход к диффузии в пространстве экрана и оценили блум компонентов диффузной кожи непосредственно в шейдере кожи. Это позволило нам добиться желаемого эффекта при минимальных затратах.
Освещение
Линейная аппроксимация освещения пространства
Практически все современные игры для консолей и ПК делают гамма-коррекцию, однако многие мобильные GPU до сих пор не поддерживают автоматическое чтение и запись данных с гамма-коррекцией (sRGB). Для эмуляции sRGB мы использовали гамму 2, что позволило нам использовать операции квадрата (умножение на себя) и квадратного корня, которые намного быстрее, чем, например, вычисление мощности 2,2. Мы корректировали только пиксели кожи и третий проход для затенения кожи.
Атмосферное рассеивание
Частью нашей цели в этой демонстрации было показать, насколько впечатляющими могут быть фоны на мобильных платформах. Чтобы добиться этого, мы решили использовать не традиционный туман на расстоянии, а удобную для мобильных устройств систему рассеивания атмосферы. Мы смоделировали рассеяние в воздухе, приняв во внимание угол наклона к солнцу и расстояние до объекта. В результате "Чейз" может обеспечить исключительно большую и открытую зону обзора: самый удаленный от камеры объект находится на расстоянии четырех километров.
Новая система бликов на объективе
Использование слоев бликов позволило нам добиться различных эффектов, таких как:
- Анаморфотные явления: когда блики перемещаются по горизонтальной или вертикальной оси из-за анаморфотной формы объектива.
- Внутреннее затенение: интенсивность блика частично снижается из-за внутреннего затенения крепления головы или неравномерного отражения объектива.
- Утечка света: геометрия блика растягивается по краю экрана, чтобы имитировать очень яркий источник света за пределами кадра.
Действие "Погони" происходит в нереальном и далеком будущем, но техники, использованные для ее создания, доступны здесь и сейчас. Если вы начинаете работать в качестве мобильного разработчика и хотите узнать, как привнести высококлассную графику в свою мобильную игру, наше практическое руководство по оптимизации для мобильных устройств - это то, с чего стоит начать.
Компания Google использовала The Chase во время презентации Nexus7 / OpenGL ES 3.0, а также на демонстрационных роликах многих ведущих участников выставки SIGGRAPH 2013.