ПОМОЩЬ
Вход Регистрация Забыли пароль? Пользователи
Top.Mail.Ru
Сейчас на сайте:
54 человек
Серия Crysis / Crysis 2 / Статьи Crysis 2 / Обзор эффектов DirectX 11 Ultra Upgrade в Crysis 2
Автор: NVIDIA   Дата: 2011-09-05 16:45   Просмотров: 6663   Рейтинг:   Комментарии: (0)
Шутер Crysis 2 впервые появился на полках магазинов 22 марта и стал первой мультиплатформенной игрой компании Crytek, в создании которой принимали участие все студии разработчика из разных частей света. . Из-за того что перед разработчиками изначально была поставлена высокая планка, требующая, чтобы все три версии игры были одинаково хороши, компания Crytek не успела до запланированной даты выхода игры внедрить в Crysis 2 поддержку преимуществ DirectX 11. После официального релиза разработчики смогли полноценно сосредоточиться на ПК-версии игры, в результате чего, спустя несколько месяцев после официального выхода игры, увидела свет самая исчерпывающая и современная реализация стандарта DirectX 11, невиданная ранее ни в одной другой видеоигре.

Реализация DX11 появилась в виде бесплатного патча, состоящего из трёх частей для улучшения графики, который называется Crysis 2 DirectX 11 Ultra Upgrade и весит 2.32GB. Он предлагает всё богатство графических усовершенствований как для DirectX 9, так и для DirectX 11, обеспечивает тесселяцию DirectX 11 и включает в себя пакет текстур в высоком разрешении, который совместим только с графическими картами с не менее чем 1GB видеопамяти на борту.

Вышеупомянутая аппаратная тесселяция DirectX 11 – это главное усовершенствование графики в игре, но, помимо неё, Ultra Upgrade обеспечивает мягкие тени с переменными полутенями, улучшенный рендеринг водных поверхностей, а также продвинутое затенение и сглаживание движущихся частиц. Изначально исключённая из движка CryEngine 3 программная техника Parallax Occlusion Mapping была возвращена в игру, как и эффект размытия движения с расширенным динамическим диапазоном, делая слежение камеры за объектом более определенным и проработанным. Для лучшей производительности был также реализован механизм аппаратного отсечения невидимых объектов, благодаря которому вычислительные ресурсы расходуются наиболее оптимально.

Кроме того, для Ultra Upgrade были разработаны с нуля три новые технологии. Realtime Local Reflections обеспечивает высококачественные отражения нового поколения в реальном времени; Screen Space Directional Occlusion улучшает освещение и затенение, сгенерированное Screen Space Ambient Occlusion, программной техникой глобального освещения, впервые использованной Crytek в оригинальном Crysis; глубина резкости -на базе спрайтов Bokeh добавляет кинематографичности эффектам нового шутера Crytek.

Чтобы задействовать Ultra Upgrade, необходимо включить в меню игры соответствующую опцию:


Основное графическое меню позволяет пользователям включать эффекты DirectX 11 и выбирать предварительную установку общего качества.


Продвинутое графическое меню позволяет пользователям настраивать предварительные установки качества, выставлять уровень размытия движущихся объектов и включать использование текстур высокого разрешения, если они установлены.

Настройки на изображении выше появляются после установки пакета Ultra Upgrade и позволяют пользователям включать и выключать следующие эффекты:



Тесселяция и карты смещения

Тесселяция и наложение рельефа с использованием карт смещения – это основные и наиболее визуально заметные нововведения пакета Ultra Upgrade. Стены теперь состоят из неоднородных кирпичей, камни кажутся многоуровневыми, и многие другие элементы картинки выглядят более детально и объёмно при включении этих опций. Важность использования тесселяции нисколько не преувеличена, технология привнесла в каждую деталь, где это было возможно, объём и чёткость, заметные невооружённым глазом. Вы сразу заметите отсутствие этого эффекта, отключив его в DirectX 11 Ultra Upgrade или воспользовавшись сравнительными анимированными скриншотами ниже.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

Компания Crytek комплексно подошла к вопросу тесселяции в Ultra Upgrade. Она сделала изначально все объекты пригодными для тесселяции и позволила разработчикам самим решать, какие объекты на конкретном уровне стоит подвергнуть процедуре, а какие нет, регулируя тем самым баланс качества и производительности. Благодаря такому подходу дизайнеры получили возможность подвергать тесселяции важные объекты в одном уровне и не подвергать в другом, где они будут уже лишь фоновыми деталями.

Одним из самых важных новшеств, доступных благодаря стандарту DirectX 11, является программируемая аппаратная тесселяция. Crytek решила форсировать освоение этой технологии, так как большинство современных игр на DirectX 11 поддерживают её довольно посредственно и используют только для простых процедур и эффектов.

Чтобы сохранить требуемый уровень производительности при наилучшем качестве тесселяции, компания Crytek использовала специальные программные шейдеры Hull и Domain. Опуская сложные технические подробности, следует пояснить, что основная функция Hull Shader – это вычисление степени разбиения тесселируемой поверхности, определяющей уровень детализации отображаемого на экране объекта. Разумное использование этого шейдера позволяет адаптивно применять эффект тесселяции, регулируя уровень его детализации в зависимости от расстояния до объекта. Например, если игрок находится в трёхстах метрах от горы, то ей не требуется тесселяционная детализация такого уровня, как если бы игрок находился в метре от неё.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

После того, как с помощью Hull Shader определена к необходимая степень тесселляции, Domain Shader может модифицировать поверхность, создав требуемую детализацию, или выполнить другие сложные функции. В пакете Ultra Upgrade Domain Shader используется для добавления дополнительной геометрической детализации в процессе рендеринга, в таких ситуациях, как, например, неровная поверхность у игрока под ногами. Используемые при этом так называемые «карты смещения» являются предварительно созданными текстурами, которые хранят информацию о высоте каждой точки поверхности и её деталях. Наложение такой карты на поверхность создаёт иллюзию более подробно проработанной структуры и позволяет создать очень рельефную и детальную поверхность из практически плоской заготовки. Использование карт смещения позволило студии Crytek насыщать огромные площади новыми деталями без существенного увеличения используемой памяти.

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


Это каркасное изображение демонстрирует сложность использования дополнительной детализации при появлении постороннего объекта с включенной тесселяцией.

Метод параллаксного смещения для создания рельефа (Parallax Occlusion Mapping)

Тесселяция – это превосходная техника для генерации дополнительных деталей на уровне геометрии (ландшафт, стены, посторонние объекты), но в улучшении графического реализма на пиксельном уровне (мелкие детали, грязь, следы от шин) метод параллаксного смещения (POM - Parallax Occlusion Mapping) показывает более подробные результаты с меньшими затратами производительности.

На картинке ниже показана сцена со следами шин на земле. Глядя на этот анимированный скриншот, может показаться, что сравниваются два разных уровня тесселяции, но для достижения такой детализации рельефа методом тесселяции пришлось бы существенно пожертвовать производительностью. Проще говоря, чем мельче и подробнее детали, тем большей производительностью приходится платить за их тесселяцию, так как треугольники, на которые разбиваются объекты, при этом методе, должны быть сравнимы по размеру с пикселями. Для областей, подверженных POM рендерингу, в реальном времени создаётся иллюзия самозатенения геометрии, которую в нашем примере отчётливо видно слева на обоих следах шин и справа на левом следе. Это заметно улучшает объёмность ландшафта и способствует лучшей интеграции персонажа в игровую реальность.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

Тесселяция управляет базовой геометрией сцены, в то время как параллаксное смещение производит изменения на пиксельном уровне в соответствии с перспективой зрителя. При использовании тесселяции, канава была бы образована реальной геометрией, а с методом POM она будет являться оптической иллюзией. Таким образом, в примере, приведённом выше, детализация, созданная методом POM, не сможет перекрывать ноги персонажа, стоящего непосредственно за следами от шин . Вместо этого будет создаваться впечатление, что персонаж находится на плоской поверхности, как будто рендеринг происходит в версии игры под DirectX 9. С одной стороны это может показаться недостатком, но с другой невозможно себе представить глобальную тесселяцию всей сцены параллельно с занятостью GPU и CPU рендерингом всех остальных элементов игры. Поэтому метод параллаксного смещения должен использоваться вместо лучшей техники для достижения компромиссной, но слаженной визуализации с остальными возможностями, которые предлагает Ultra Upgrade.

Объёмность воды и улучшения визуализации океана

Тесселяция была также использована в Crysis 2 для улучшения качества визуализации океана и изолированных водных масс. Сетка, определяющая внешний вид и движение воды, теперь подвержена динамической тесселяции, основанной на расстоянии до точки её обзора. Это позволило добиться невероятной детализации и полного отсутствия искажений при движении камеры, характерных для используемой ранее статической сетки. Кроме того, при помощи Быстрых Преобразований Фурье (БПФ) удалось достичь реалистичной динамики движения волн. БПФ – это высокоскоростной математический метод для обработки цифровых данных, который позволяет сгенерировать реалистичные волны с правильной реакцией взаимодействия с объектами окружения и ландшафтом.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

В области рендеринга воды компания Crytek реализовала ещё несколько улучшений. Главным среди них является подповерхностное рассеивание (Sub-Surface Scattering), которое моделирует внутреннее свечение воды при рассеивании света внутри неё. Этот эффект достаточно тонок, но он открывает широкие горизонты для использования данной техники на персонажах и других игровых объектах, что будет следующим большим шагом вперёд при создании освещения в играх.

Помимо тесселяции воды, с помощью дополнительных карт смещения был улучшен механизм её взаимодействия с окружением. На примере ниже приведена сцена, где персонаж стреляет в воду. Движок просчитывает импульс пули со ссылкой на карту смещения, вода реалистично взмывает вверх и разбрызгивается по сторонам посредством дополнительной тесселяции, а окружающая поверхность подвергается затухающим волновым колебаниям. Для ещё большей убедительности этого эффекта, Crytek обновила и саму физическую модель воды. Теперь перемещение врагов и главного персонажа через воду будет выглядеть максимально реалистично, насколько это возможно в пределах ограничений современных технологий.


Обратите внимание на тесселяционный всплеск, появляющийся из тесселяционной водной массы после попадания в неё пули.

И наконец, у волновых гребней появилась пена, делая движение воды визуально ещё более реалистичным. В реальном мире опытный моряк может легко установить силу ветра по Бофортовой шкале, просто наблюдая плотность и движение пены гребня.


Реальный пример пены на волнах в обширной водной массе – источник изображения

Реалистичные тени с переменными полутенями

В дополнение к эффекту самозатенения при расчете параллаксного смещения, компания Crytek реализовала техники реалистичных теней с переменными полутенями. Повторяя законы реального мира, эти тени становятся мягче с увеличением расстояния от тени до ее источника, вместо равномерного размытия по всей площади.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

В анимированном сравнении все тени, будь то тень от дерева, носилок или машины скорой помощи, идентичны при отключенном эффекте полутеней DirectX 11. Вид и плотность абсолютно одинаковы, а затенение универсально для всех объектов сцены. При включении эффекта, тень от дерева становится более размытой из-за большего расстояния от своего источника, а тени от носилок, машины скорой помощи и большой цистерны более резкими из-за своей близости к объектам, которые их отбрасывают. Вид, плотность и степень затенения теперь полностью продиктованы углом падения света и положением объектов в сцене. Тени больше не выглядят абсолютно идентично, что придаёт игровой среде бОльшую глубину.

Размытие движения в расширенном динамическом диапазоне

Пакет Ultra Upgrade также привносит в игру сглаживание во времени в высоком разрешении, под которым обычно подразумевают размытие движения. Возможности новой версии DirectX позволяют создать более качественное размытие по сравнению с предыдущими версиями, в которых под размытие могли попасть лишние области, такие как руки и оружие персонажа, что продемонстрировано на примере ниже.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

Частичное размытие и затенение

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


Обратите внимание на аккуратные тени от листвы дерева и эффекты затенения на частицах и дыме над солдатом.

Эффект размытия фона на базе спрайтов Bokeh

Как и подповерхностное рассеивание, глубина резкости на базе спрайтов Bokeh является довольно перспективным улучшением графики, которое не обойдёт стороной многие последующие разработки в области видеоигр. Чтобы получить эффект размытого фона, используемого многими режиссёрами для добавления кинематографичности своим лентам, Crytek заменил посредством DirectX 11 традиционный метод пост-обработки DirectX 9 спрайтовым проходом визуализации, позволив дизайнерам задать форму и размер спрайтов Bokeh и привести их к круговым или пятиугольным размытым очертаниям, показанным в анимированном примере ниже.


Реальный пример эффекта Bokeh - источник изображения


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на три картинки).

Из-за ограничений DirectX 9, разработчики Crytek ранее были вынуждены ограничить число расфокусированных областей в сцене, чтобы минимизировать эффекты недостаточной частоты дискретизации, которые проявляются, когда ренедринг производится в более низком разрешении, а результат «растягивается», чтобы заполнить весь экран. В результате этого сильно страдало качество изображения, которое казалось угловатым или размазанным, поскольку информация, содержащаяся в одном пикселе, распространялась на несколько соседних пикселей. Вывод изображения с низким разрешением на большой экран даёт такой же эффект.

Несмотря на переход к методу спрайтового размытия Bokeh, в целом дополнительная оптимизация картинки всё ещё необходима. Вот что говорят в Crytek по этому поводу: «К сожалению, современное аппаратное обеспечение графики пока отстаёт на несколько лет от возможности эффективно использовать такие методы в полноэкранных разрешениях. Поэтому данная реализация сделана в половине исходного разрешения и включает в себя множество дополнительных оптимизаций». Несмотря на эти технологические ограничения, реализация размытия фона на DirectX 11 намного превосходит все предыдущие и позволяет применять дополнительные эффекты Bokeh везде, где нужно, исключая любую эффекты недостаточного сэмплирования.

Рассеянное затенение в пространстве экрана и контактные тени

SSAO, или рассеянное затенение в экранном пространстве, (Screen Space Ambient Occlusion) было великолепным дополнением к базовой системе освещения в оригинальном Crysis. Теперь Crytek представляет усовершенствованную версию этой техники под названием Screen Space Directional Occlusion (SSDO).

SSAO придаёт сценам ощущение большей глубины за счет расчета затенения на основе глубины изображения и интенсивности рассеянного освещения в сцене. Эффект достигается за счет того, что пиксельный шейдер производит выборку значений глубин для набора точек на экране вокруг текущего пикселя и пытается вычислить степень «видимости" текущего пикселя из каждой из выбранных точек. На практике эффект не всегда работал как ожидалось, так как его алгоритм довольно ресурсоёмкий для GPU, но там где он действительно работал сцены обретали новую глубину за счёт затенения впадин, отверстий и поверхностей, находящихся вблизи друг от друга.

К сожалению, метод SSAO совершенно не учитывает направленность окружающего света. Поэтому алгоритм был доработан и преобразован в метод затенения на основе направленного света в экранном пространстве (Screen Space Directional Occlusion). SSDO требует совсем немного дополнительной вычислительной мощности, но обеспечивает превосходный результат. Он учитывает направление падающего света и позволяет рассчитать его однократное диффузное отражение для ещё большего реализма. Эффект работы метода SSDO продемонстрирован на анимированном скриншоте ниже на примере аккуратных реалистичных теней, отбрасываемых мешками с песком и щебнем. Реализм и глобальное освещение закрытых сцен, таких как офисные помещения, также значительно улучшены, благодаря усовершенствованному самозатенению, кроме того алгоритм SSDO позволяет учитывать цвет отраженного освещения – эффект, который иногда можно наблюдать на открытых сценах.


Верхний ряд демонстрирует различие между освещением с эффектами SSAO, SSDO и SSDO с одним дополнительным отскоком света. Нижний ряд показывает эти различия более подробно. При эффекте SSAO все тени полностью серые, в то время как при использовании SSDO видны красные и синие тени. Два нижних изображения справа демонстрируют эффект дополнительного непрямого отскока света. Обратите внимание на жёлтый свет, который отражается от коробки и падает на основу на самом правом нижнем изображении.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на три картинки).

Локальные отражения в реальном времени

Точные отражения в реальном времени – это один из самых требовательных эффектов в современных игровых движках. В предыдущих версиях CryEngine возможности были ограничены одними плоскими отражениями, применимыми только для воды и кубических текстур. Это уже довольно устаревший метод, который позволяет создавать лишь плохо определённые отражения с низким разрешением и невозможностью их рекурсивного отображения.

Для DirectX 11 Ultra Upgrade студия Crytek реализовала локальные отражения в реальном времени, рассчитанные в широком динамическом диапазоне, сходные с отражениями на базе трассировки лучей, которые использует студия Pixar для абсолютной точности при рендеринге сцен в своих мультфильмах. Такие отражения могут отражаться от других поверхностей и сами могут быть отражены. И, конечно, их обработка на современных технологиях достаточно быстра для представления в реальном времени (рендеринг отражений, основанных на трассировке лучей, даёт всего несколько кадров в секунду на самых мощных системах).

Это улучшение хорошо видно на первом примере ниже, где солдат и его окружение отражаются в панели слева у стены и в глянцевом полу. Во втором примере вся сцена отражена в высокой степени точности.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

Текстуры с высоким разрешением

Новый набор текстур весом 1.7GB улучшает качество исходной картинки, но использует в четыре раза больше памяти в процессе игры. Кроме того, пользователям понадобится 64-разрядная операционная система и видеокарта с 1GB памяти, только чтобы активировать этот набор.


Кликните, чтобы увидеть анимированное сравнение (анимирование заменено на две картинки).

Разница в качестве картинки с обновлёнными текстурами достаточно существенна. Гораздо лучше выглядят дороги, камни и вообще практически каждый объект или поверхность в игре. Объединяя в себе эффекты тесселяции, параллаксного смещения и другие, Crysis 2 устанавливает новый стандарт игровой графики на ПК. И в качестве дополнительного бонуса, все разработчики смогут использовать новые текстуры в своих проектах.

Заключение

Студия Crytek вызвала некоторое недовольство со стороны геймеров, сделав PC версию Crysis 2 идентичной консольным, но с DirectX 11 Ultra Upgrade эта проблема ушла в небытие. Благодаря DirectX 11 Ultra Upgrade PC версия Crysis 2 оживает прямо на глазах. Совокупное использование тесселяции и параллаксного смещения выводит уровень детализации практически каждого элемента игры на совершенно новый уровень. Улучшения для отображения воды, теней и размытия движения выглядят убедительно даже на статичных скриншотах и позволяют отточить графический реализм практически до предела современных возможностей. Стоит отметить, что студия Crytek с лихвой выполнила свои обязательства перед PC геймерами и подтвердила превосходство Crysis в графическом плане над аналогами.

Источник: http://www.geforce.com/News/articles/crysis-2-directx-11-ultra-upgrade

Автор: Эндрю Бёрнс (Andrew Burnes)

Источник перевода: http://www.nvidia.ru/object/crysis-2-directx-11-ultra-upgrade-2-ru.html


Сообщить об ошибке / дополнить материал

  Рейтинг:
Пользовательская оценка (от 1 до 10): 10.00   Проголосовавших: 1 с 2011-11-16 19:33

  Комментарии:
Пока комментариев нет