Что лучше ssao hbao hdao
Метод ssao far cry 3 какой лучше
SSAO (англ. screen space ambient occlusion — преграждение окружающего света в экранном пространстве) — программная техника (методика) в трёхмерной компьютерной графике, которая является приближенной имитацией глобального освещения и представляет собой изменённый и усовершенствованный вариант методики Ambient occlusion. Алгоритм SSAO работает в режиме реального времени и имитирует рассеянное непрямое освещение и соответствующее затемнение в трёхмерном виртуальном пространстве.
SSAO был разработан отделом исследований и разработок немецкой компании Crytek при разработке графических компонентов игрового движка CryEngine 2. [1] Crysis, первая игра на CryEngine 2, разработанная Crytek и вышедшая осенью 2007 года, впервые использовала SSAO. Позже данный алгоритм и его модификации были использованы во многих игровых движках, включая Leadwerks Engine, Dagor Engine, Unreal Engine, Unity, X-Ray, Glacier 2 и других.
Содержание
Описание работы [ править | править код ]
Алгоритм SSAO исполняется на графическом процессоре видеокарты и осуществляется как пиксельный шейдер, анализирующий буфер глубины (Z-буфер) сцены, который сохранён в текстуре.
При работе алгоритма Ambient occlusion пиксельный шейдер производит выборку значения глубины для каждого пикселя на экране вокруг текущего пикселя и пытается вычислить количество преград от каждой из выбранных точек. В своей самой простой реализации коэффициент преграды зависит только от различия глубины выбранной точки и текущей точки. Без дополнительных продвинутых решений и алгоритмов такой метод решения «в лоб» потребовал бы приблизительно 200 чтений из текстуры для каждого пикселя для хорошего визуального качества. Это число не является приемлемым для рендеринга в режиме реального времени на современных графических процессорах.
Алгоритм SSAO призван упростить вычислительную сложность алгоритма Ambient occlusion и сделать его подходящим для работы на графических процессорах в режиме реального времени. Вместе с тем качество результирующего изображения у SSAO является худшим, чем в первоначальном Ambient occlusion, так как SSAO использует аппроксимирующие (приближающие) методики рендеринга.
Для создания Screen Space Ambient Occlusion необходимо иметь две текстуры со сценой:
Потом берётся Position Map и Normal Map каждого текселя на экране и обрабатываются соседние тексели. По отношению позиций соседних текселей к обрабатываемому, ему присваивается определённый уровень «затенения».
Для получения высококачественных результатов с гораздо меньшим количеством чтений текстуры, по сравнению с Ambient occlusion, в SSAO осуществление выборки используется вместе с случайно вращаемым ядром. Ориентация ядра повторяется каждые N пикселей экрана для того, чтобы иметь только высокочастотные искажения в финальном изображении. В конце это высокочастотное искажение удаляется NxN количеством прохода постпроцессора, размывающего изображение (англ. Blur ). При этом принимается во внимание глубина неоднородностей, используя такие методы, как сравнение смежных нормалей и глубин. Такое решение позволяет сокращать количество выборок глубины на пиксель к приблизительно 16 или меньше, в то же время предоставляя высококачественный результат и позволяя использовать SSAO в приложениях реального времени, таких как компьютерные игры.
Преимущества и недостатки [ править | править код ]
По сравнению с другими алгоритмами модели Ambient occlusion, у SSAO есть следующие преимущества:
Вместе с преимуществами алгоритму SSAO свойственны и недостатки:
С появлением 3D-игр у их создателей серьезно прибавилось проблем: о сглаживании мы уже говорили, также мы говорили и о фильтрации текстур. Теперь же поговорим о еще одном эффекте, который позволяет серьезно улучшить реалистичность картинки — о Ambient Occlusion (AO), или о затенении.
В оптике можно выделить три простых градации освещенности — тень (источник света не виден), полутень (источник света виден частично) и освещенное место (источник света виден полностью). Казалось бы — все просто, рассчитать границы тени и полутени можно в два счета с помощью обыкновенных лучей. Однако полученная в результате картинка наводит на мысль, что мы где-то что-то забыли:
Таких черных теней не бывает (ну на Земле по крайней мере), так что сразу становится очевидным, что мы забыли — рассеяние света: суть в том, что в реальном времени фотоны могут отражаться от различных поверхностей и в итоге попадать туда, куда напрямую фотоны от источника не долетают: именно поэтому в тени хоть и темнее, чем на свету, но не черным черно. На Земле таким «рассеивателем» фотонов выступает сама атмосфера.
Но тут возникает вопрос — а как это рассчитать-то? Увы — алгоритма, дающего 100% точное рассеяние света в real-time, нет, однако есть множество хорошо приближенных к реальности алгоритмов, отлаженных настолько, что они спокойно используются в видеоиграх.
Для начала — общая для всех алгоритмов теория: можно ввести так называемую среднюю освещенность всей сцены, своеобразную аппроксимацию непрямого освещения. Но вот проблема в том, что в местах, где есть тень, такая аппроксимация будет давать повышенную яркость. Поэтому можно несколько усложнить ее — снижать яркость в тех местах, куда отраженному свету труднее добраться. То есть для каждого фрагмента сцены мы находим так называемый заграждающий фактор: количество свободных «путей» для фотона деленное на все количество путей фотона до данного участка, и на основе этих данных и средней яркости сцены можно рассчитать яркость конкретного участка.
Однако тут мы получаем очередную проблему — отрисовка геометрии происходит постепенно, поэтому заграждающий фактор также в процессе отрисовки может серьезно меняться. Можно, конечно, рассчитать AO на этапе загрузки сцены, но тогда затенение не коснется динамических объектов (персонажей, машин и т.д.) — а это нехорошо. И тут приходит идея использовать для отрисовки затенения экранное пространство (Screen Space), что в итоге выливается в простейший алгоритм AO — SSAO.
SSAO
Этот алгоритм появился еще в Crysis 10 лет назад. Его суть проста: после построения геометрии у нас остается Z-буфер, или буфер глубины, который включает в себя абсолютно всю информацию о геометрии сцены — а значит никаких проблем сделать AO нет.
Хотя, конечно, кого я обманываю — проблемы есть, и самая серьезная — недостаточная производительность современных видеокарт: для того, чтобы получить более-менее неплохую карту затенения, для каждого фрагмента сцены нужно обсчитывать порядка 200-250 направлений, что позволяет «закопать» любой GPU. Поэтому делается хитрее — используется 8-32 «луча», направленные на выбранный фрагмент сцены, которые каждый раз поворачиваются на случайное значение. В итоге получается терпимое качество картинки с не очень большими затратами на расчеты:
В дальнейшем алгоритм был доработан — стали использоваться карты нормалей, что снизило сложность вдвое и позволило в итоге вдвое увеличить число выборок. Ну и финальный штрих — стали использовать размытие, дабы сгладить шум от случайных выборок.
HBAO и HBAO+
Nvidia не была бы Nvidia, если бы не стала развивать затенение дальше, представив в 2008 году HBAO — Horizon Based Ambient Occlusion. От SSAO это затенение отличалось тем, что оно основано на физической модели, где аппроксимируется интеграл освещенности фрагмента сцены со значениями выборки буфера глубины. Итоговое качество оказывается выше SSAO при большом числе выборок, но мы опять же упираемся в производительность. Поэтому HBAO рендерится обычно в более низком разрешении, что приводит к мерцанию картинки.
Проблема мерцания была исправлена в HBAO+ простым методом, который сейчас активно использует Sony в 4К играх на PlayStation 4 Pro: для рассчета HBAO+ используется шахматный рендеринг, то есть для обработки затенения используется часть предыдущего кадра и половина нового: это требует меньше затрат GPU, но при этом позволяет рендерить затенение в исходном разрешении, что и убирает мерцание.
HDAO
AMD в стороне не остались, и стали использовать собственное затенение (которое, к слову, также работает и на Nvidia) — HDAO (High Definition AO). Увы — AMD не делится алгоритмом, однако известно, что в его основе лежит Gather4 — технология, которая собирает 4 текселя в один регистр. То есть, как и с HBAO, по сути происходит рендеринг в пониженном разрешении. В итоге, в среднем картинка с HBAO и HDAO сравнима по качеству, но опять же — все достаточно сильно зависит от игры: к примеру, в Far Cry 3 с HDAO трава выглядит красивее:
VXAO
С выходом DX12 Nvidia представила принципиально новое затенение — VXAO (Voxel Accelerated Ambient Occlusion). Его суть в том, что оно работает уже не с пикселями и текселями (то есть 2D-объектами), а с вокселями — аналогом пикселя в 3D. И теперь мы используем не Z-буфер, а воксельное построение сцены, поэтому алгоритм состоит из трех пунктов: вокселизация, постобработка вокселей и трассировка конуса. Вокселизация выполняется путем рендеринга треугольных сеток в трехмерную текстуру, и поэтому ее производительность сильно зависит от общего количества треугольников, размера этих треугольников и количества вызовов рисования, необходимых для их рендеринга. Постобработка объединяет проходы, такие как очистка, фильтрация и понижающие выборки вокселей, а ее производительность зависит от общего количества вокселей, созданных во время вокселизации. Типичное время после обработки составляет 0,5 — 1,5 мс. И, наконец, трассировка конуса выполняется в пространстве экрана, поэтому его производительность зависит от разрешения экрана и скорости затенения. Итоговое качество картинки оказывается в куда лучше, чем с HBAO+:
На этом все. Советы для игроков простые: если компьютер хорошо тянет игру без AO, то можно попробовать включить SSAO или HBAO — обычно это снижает fps не более чем на 10%. Если же и с ними производительность отличная — можно попробовать HBAO+ и HDAO. Ну и для самых топовых видеокарт современности можно порекомендовать набирающее обороты VXAO — оно крайне требовательно к ресурсам (в том числе и к видеопамяти), поэтому даже в FHD оно будет доступно лишь пользователям старших Nv >
HBAO (расшифровывается как «Horizon-based Ambient Occlusion») является технологией, первоначально разработанной Nvidia и включенной нами в свой движок для использования в режимах DX10 и DX11. Это технология создает мягкий и реалистичными контактные тени (затенение) между объектами, и может действительно улучшить графику, но довольно тонко. HBAO весьма требователен к GPU и потому предназначен прежде всего для hi-end видеокарт. Рассчитывает HBAO целиком видеокарта. С момента релиза ПК-беты мы проделали кучу оптимизаций вместе с NVIDIA и AMD, так что если у вас были проблемы с производительностью с бетой раньше, попробуйте финальную версию игры, если у вас современный и быстрый GPU!
************************
если покороче, то
HDAO — предпочтительно для красных (радеонов)
HBAO — предпочтительно для зеленых (джифорс)
SSAO — самый легкий для железа режим (не важно, красные или зеленые)
***********************************
Oclusión Ambiental ¿Qué es? Различные типы экспликаций SSAO, SSDO, HBAO, HDAO, VXAO
Меня смутил вариант, когда в Far Cry 3 у меня был выбор между SSAO, HBAO и HDAO.
Нажатие на Google на самом деле не дало мне никаких ответов, равно как и включение каждой опции и сравнение результатов. Видно я слепой что ли.
Во-первых, какое качество НАИЛУЧШЕЕ? Во-вторых, в чем реальная разница между этими вариантами?
H * AO предлагает лучшее качество, но с повышенным ударом по производительности.
SSAO менее точен, но улучшает качество изображения с гораздо меньшим падением производительности.
Если вы собираетесь использовать H * AO, насколько я понимаю, вам следует выбрать HDAO, если у вас есть карта ATI, или HBAO, если у вас карта NVIDIA.
Вот несколько скриншотов BF3, которые могут помочь: http://www.reddit.com/r/gaming/comments/kwjtw/my_battlefield_3_screenshot_comparison_ssao_vs/
Я рекомендую использовать ссылку, которую они предоставляют здесь: http://www.flickr.com/photos/bmorlok/6197863052/in/set-72157627662461565/lightbox/ и с помощью клавиш курсора быстро переключаться между тремя снимками экрана.
Вы должны быстро определить, где происходит затенение между none, SSAO и HBAO.
Посмотрите на области пересечения предметов. Например, там, где пол встречается со стеной, где столб встречается с потолком, где кусты, обломки земли.
Я взял на себя смелость захватить одну из фотографий и выделить области, на которые вы должны смотреть, листая вперед и назад.
Вы заметите, что SSAO затемняет в тех же областях, но это НАМНОГО менее выражено.
любая незакрытая поверхность (опционально на определенном расстоянии) горит
Даже при трассировке лучей это просто быстрый и грязный способ выделить мелкие детали на моделях.
Во-вторых, все рассматриваемые методы являются всего лишь итерациями SSAO; все они работают как пост-процесс после рендеринга сцены. Это означает, что шейдеры должны делать что-то волшебное, чтобы получить что-то точное из небольшого количества информации, которая остается после растеризации.
Ошибка этого подхода заключается в том, что он ложно затемняет и не может обнаружить определенные особенности. Вам нужно будет хорошенько рассмотреть этот столб, но вы заметите, что, хотя потолок ложно затенен по бокам, на стыке он не затронут.
В этой статье есть еще несколько наглядных примеров.
Этот алгоритм пытается решить проблемы SSAO. Для этого используется дополнительная информация, а именно карта нормалей. Вместо поиска окклюдеров вокруг пикселя в пространстве экрана он пытается восстановить небольшие фрагменты сцены и сделать более обоснованное приближение яркости, которая должна быть там.
Вы можете очень отчетливо заметить этот потолок лицом внизтакже столб темнее наверху.
В статье NVIDIA есть более подробные сведения об этом.
Заключение
Ответ k1DBLITZ подразумевает, что:
Это может быть верно для Battlefield 3, но не для Far Cry 3.
Мой ответ основан на том, что я испытал в игре, а также на этой статье из HardOCP.
В чем разница между SSAO, HBAO и HDAO в Far Cry 3?
Есть различия в том, как они работают, как они выглядят и как они влияют на частоту кадров. Я не буду подробно рассказывать, как они работают.
SSAO создает тени вокруг краев объектов, иногда неправильно (например, вокруг краев объектов, которые не расположены близко друг к другу).
HBAO приводит к менее неправильному затенению, чем SSAO, но иногда оно слишком выражено (в некоторых областях оно даже темнее, чем SSAO), особенно вокруг травы, листьев и цветов.
Что касается влияния на частоту кадров, то оно практически идентично SSAO на картах AMD и даже немного быстрее, чем SSAO на картах Nvidia.
HDAO более тонкий, чем SSAO и HBAO. Это, наверное, самый точный, потому что неправильного затемнения гораздо меньше.
Выбор HDAO вместо SSAO или HBAO приводит к небольшому падению частоты кадров на картах AMD и значительному падению частоты кадров на картах Nvidia.
Какой из них выглядит лучше всего?
Ответ на этот вопрос субъективен. HDAO, вероятно, является наиболее реалистичным вариантом в Far Cry 3. Однако некоторые люди могут предпочесть SSAO, поскольку это приводит к более контрастному изображению, которое может быть более привлекательным для глаз.
HBAO также подразумевает использование техники плоскости изображения глаза для имитации различий в размере радужной оболочки при взгляде с определенных уровней света на другие уровни света.
HDAO этого не делает.
что за настройка в игре hbao
Что такое HDAO, HBAO и SSAО, и что лучше использовать, например, в Far Cry 3, если видеокарта GeForce 450 GTX 1GB?
Screen Space Ambient Occlusion (сокращённо SSAO; англ. преграждение окружающего света в экранном пространстве) — программная техника (методика) в трёхмерной компьютерной графике, которая является приближенной имитацией глобального освещения и представляет собой изменённый и усовершенствованный вариант методики Ambient occlusion. Алгоритм SSAO работает в режиме реального времени и имитирует рассеянное непрямое освещение и соответствующее затенение в трёхмерном виртуальном пространстве.
HBAO (расшифровывается как «Horizon-based Ambient Occlusion») является технологией, первоначально разработанной Nvidia и включенной нами в свой движок для использования в режимах DX10 и DX11. Это технология создает мягкий и реалистичными контактные тени (затенение) между объектами, и может действительно улучшить графику, но довольно тонко. HBAO весьма требователен к GPU и потому предназначен прежде всего для hi-end видеокарт. Рассчитывает HBAO целиком видеокарта. С момента релиза ПК-беты мы проделали кучу оптимизаций вместе с NVIDIA и AMD, так что если у вас были проблемы с производительностью с бетой раньше, попробуйте финальную версию игры, если у вас современный и быстрый GPU!
************************
если покороче, то
HDAO — предпочтительно для красных (радеонов)
HBAO — предпочтительно для зеленых (джифорс)
SSAO — самый легкий для железа режим (не важно, красные или зеленые)
***********************************
Как работает затенение в компьютерных играх
С появлением 3D-игр у их создателей серьезно прибавилось проблем: о сглаживании мы уже говорили, также мы говорили и о фильтрации текстур. Теперь же поговорим о еще одном эффекте, который позволяет серьезно улучшить реалистичность картинки — о Ambient Occlusion (AO), или о затенении.
В оптике можно выделить три простых градации освещенности — тень (источник света не виден), полутень (источник света виден частично) и освещенное место (источник света виден полностью). Казалось бы — все просто, рассчитать границы тени и полутени можно в два счета с помощью обыкновенных лучей. Однако полученная в результате картинка наводит на мысль, что мы где-то что-то забыли:
Таких черных теней не бывает (ну на Земле по крайней мере), так что сразу становится очевидным, что мы забыли — рассеяние света: суть в том, что в реальном времени фотоны могут отражаться от различных поверхностей и в итоге попадать туда, куда напрямую фотоны от источника не долетают: именно поэтому в тени хоть и темнее, чем на свету, но не черным черно. На Земле таким «рассеивателем» фотонов выступает сама атмосфера.
Но тут возникает вопрос — а как это рассчитать-то? Увы — алгоритма, дающего 100% точное рассеяние света в real-time, нет, однако есть множество хорошо приближенных к реальности алгоритмов, отлаженных настолько, что они спокойно используются в видеоиграх.
Для начала — общая для всех алгоритмов теория: можно ввести так называемую среднюю освещенность всей сцены, своеобразную аппроксимацию непрямого освещения. Но вот проблема в том, что в местах, где есть тень, такая аппроксимация будет давать повышенную яркость. Поэтому можно несколько усложнить ее — снижать яркость в тех местах, куда отраженному свету труднее добраться. То есть для каждого фрагмента сцены мы находим так называемый заграждающий фактор: количество свободных «путей» для фотона деленное на все количество путей фотона до данного участка, и на основе этих данных и средней яркости сцены можно рассчитать яркость конкретного участка.
Однако тут мы получаем очередную проблему — отрисовка геометрии происходит постепенно, поэтому заграждающий фактор также в процессе отрисовки может серьезно меняться. Можно, конечно, рассчитать AO на этапе загрузки сцены, но тогда затенение не коснется динамических объектов (персонажей, машин и т.д.) — а это нехорошо. И тут приходит идея использовать для отрисовки затенения экранное пространство (Screen Space), что в итоге выливается в простейший алгоритм AO — SSAO.
SSAO
Этот алгоритм появился еще в Crysis 10 лет назад. Его суть проста: после построения геометрии у нас остается Z-буфер, или буфер глубины, который включает в себя абсолютно всю информацию о геометрии сцены — а значит никаких проблем сделать AO нет.
Хотя, конечно, кого я обманываю — проблемы есть, и самая серьезная — недостаточная производительность современных видеокарт: для того, чтобы получить более-менее неплохую карту затенения, для каждого фрагмента сцены нужно обсчитывать порядка 200-250 направлений, что позволяет «закопать» любой GPU. Поэтому делается хитрее — используется 8-32 «луча», направленные на выбранный фрагмент сцены, которые каждый раз поворачиваются на случайное значение. В итоге получается терпимое качество картинки с не очень большими затратами на расчеты:
В дальнейшем алгоритм был доработан — стали использоваться карты нормалей, что снизило сложность вдвое и позволило в итоге вдвое увеличить число выборок. Ну и финальный штрих — стали использовать размытие, дабы сгладить шум от случайных выборок.
HBAO и HBAO+
Nvidia не была бы Nvidia, если бы не стала развивать затенение дальше, представив в 2008 году HBAO — Horizon Based Ambient Occlusion. От SSAO это затенение отличалось тем, что оно основано на физической модели, где аппроксимируется интеграл освещенности фрагмента сцены со значениями выборки буфера глубины. Итоговое качество оказывается выше SSAO при большом числе выборок, но мы опять же упираемся в производительность. Поэтому HBAO рендерится обычно в более низком разрешении, что приводит к мерцанию картинки.
Проблема мерцания была исправлена в HBAO+ простым методом, который сейчас активно использует Sony в 4К играх на PlayStation 4 Pro: для рассчета HBAO+ используется шахматный рендеринг, то есть для обработки затенения используется часть предыдущего кадра и половина нового: это требует меньше затрат GPU, но при этом позволяет рендерить затенение в исходном разрешении, что и убирает мерцание.
HDAO
AMD в стороне не остались, и стали использовать собственное затенение (которое, к слову, также работает и на Nvidia) — HDAO (High Definition AO). Увы — AMD не делится алгоритмом, однако известно, что в его основе лежит Gather4 — технология, которая собирает 4 текселя в один регистр. То есть, как и с HBAO, по сути происходит рендеринг в пониженном разрешении. В итоге, в среднем картинка с HBAO и HDAO сравнима по качеству, но опять же — все достаточно сильно зависит от игры: к примеру, в Far Cry 3 с HDAO трава выглядит красивее:
VXAO
С выходом DX12 Nvidia представила принципиально новое затенение — VXAO (Voxel Accelerated Ambient Occlusion). Его суть в том, что оно работает уже не с пикселями и текселями (то есть 2D-объектами), а с вокселями — аналогом пикселя в 3D. И теперь мы используем не Z-буфер, а воксельное построение сцены, поэтому алгоритм состоит из трех пунктов: вокселизация, постобработка вокселей и трассировка конуса. Вокселизация выполняется путем рендеринга треугольных сеток в трехмерную текстуру, и поэтому ее производительность сильно зависит от общего количества треугольников, размера этих треугольников и количества вызовов рисования, необходимых для их рендеринга. Постобработка объединяет проходы, такие как очистка, фильтрация и понижающие выборки вокселей, а ее производительность зависит от общего количества вокселей, созданных во время вокселизации. Типичное время после обработки составляет 0,5 — 1,5 мс. И, наконец, трассировка конуса выполняется в пространстве экрана, поэтому его производительность зависит от разрешения экрана и скорости затенения. Итоговое качество картинки оказывается в куда лучше, чем с HBAO+:
На этом все. Советы для игроков простые: если компьютер хорошо тянет игру без AO, то можно попробовать включить SSAO или HBAO — обычно это снижает fps не более чем на 10%. Если же и с ними производительность отличная — можно попробовать HBAO+ и HDAO. Ну и для самых топовых видеокарт современности можно порекомендовать набирающее обороты VXAO — оно крайне требовательно к ресурсам (в том числе и к видеопамяти), поэтому даже в FHD оно будет доступно лишь пользователям старших Nvidia GTX 900ой и 1000ой линейки, а также владельцам старших AMD RX, Fury и Vega.
Графика в играх: окклюзия, сглаживание, фильтрация — Как и с чем её едят
Приветствую всех геймеров! Давайте начистоту, вы ведь тоже заходите в только купленную игру, но сперва кликаете на графические настройки? Кто ради чего, кому-то ради самоутверждения надо глянуть на ультра-автонастройку благодаря своему мощному «железу», а кто-то просто лезет туда ради интереса.Однако, задумывались ли вы, чем отличаются FXAA и TXAA, или 8х и 16х анизотропная фильтрация? Как-раз в этом блоге, группа Abuse Reviews сейчас вам расскажет и покажет, что же это за фильтрации такие, как они работают и с чем их едят. Поехали!
Давайте начнём с самого-самого простого
Мало кто не знает, что разрешение — это количество отображаемых пикселей по горизонтали и вертикали. От этой настройки также зависит качество картинки и то, как сильно будут выражены «лесенки» в переходах между разными плоскостями\поверхностями. Но почему же возникает этот графический артефакт? Дело в том, что все графические элементы в играх состоят из пикселей, но таких проблем с прямыми линиями не происходит, но стоит только чуть её наклонить, как появляются «лесенки». Возникает это из-за отсутствия плавного перехода между цветами, которое обеспечивает сглаживание, вот о нём мы сейчас и поговорим.
Самое главное его предназначение — борьба с теми самыми «ступеньками», которые все так не любят. Сглаживание обеспечивает нам плавный переход между цветами, за счёт чего изображение получается куда комфортнее, устраняя «ступеньки». Да, картинка однозначно становится красивой, но всегда приходится чем-то жертвовать, а именно производительностью. За счёт появления новой задачи, процессору и видеокарте приходится рендерить(обрабатывать) все эти дополнительные оттенки, которое даёт нам сглаживание. Но, к счастью, существует много видов сглаживания, которые предоставляют нам разработчики в настройках. Их то мы сейчас и рассмотрим:
MSAA (Множественная Выборка Сглаживания\Multi-Sampling Anti-Aliasing)
FXAA (Быстрое Приблизительное Сглаживание\Fast approXimate Anti-Aliasing)
TXAA (Временное Сглаживание\Temporal antialiasing)
Этот параметр заставляет работать видеокарту на той же частоте, что и монитор, однако из-за этого возникают уже другие проблемы, к примеру, частота кадров может сильно падать из-за того что в игре появляется слишком много объектов, которые приходится обрабатывать. Но и для этой беды есть решение, которое называется — горизонтальная синхронизация. Принцип действия заключается в том, что модуль, встроенный в монитор заставляет экран обновляться сразу же при получении нового кадра, что способствует идеальному совпадению частот видеокарты и монитора. Благодаря всему этому, производительность компьютера не уменьшается, а монитор и видеокарта работают максимально слаженно.
На этом о проблемах картинки и артефактах — всё
Тут стоит обратить внимание на контур головы 47-го
А вот она создана не для того чтобы исправлять косяки в картинке, а улучшать её и делать более насыщенной и реалистичной. Многие из нас знают, что 3д-объекты в играх состоят из полигонов (мелких частиц). Тесселяция подразумевает разбиение полигонов на более мелкие части, чтобы генерировать больше деталей у объекта. Это особенно удобно для выделения высоты и глубины объектов. Также она способствует созданию более закругленных объектов без острых форм и углов.
Окклюзия окружения (Ambient Occlusion)
Лично я занимаюсь созданием 3д-моделей в Cinema 4D и довольно хорошо знаком с этой фичей.
SSAO ( окклюзия окружения в экранном пространстве\screen space ambient occlusion)
HBAO (Горизонтально-базированная Окклюзия\Horizon Based Ambient Occlusion)
HDAO (Высококачественная Окклюзия\High Definition AO)
Ну а что по кинематографичности?
Неплохо так нагружает вашу систему, но и так же неплохо придаёт картинке кинематографичности, а всё благодаря фокусу на конкретных объектах, благодаря чему, остальные объекты размываются. Но это может привнести неудобства, как например при игре в PUBG, во время выглядывания из окна (ну вы знаете, когда упираешься лицом в стену как идиот и видишь всё что происходит за ней) иногда замыливается вид в окне, а фокус идёт на стену или оконную раму. Очень раздражает. Однако кинематографичность, опять же, дарит нам положительные впечатления об игре.
Ну и последнее о чём хотелось бы рассказать
А вот этот параметр уж точно видел каждый, но далеко не все понимают как это работает. Объясню быстро и просто. Во имя сохранения FPS разработчики используют нехитрый трюк с понижением качества текстур и моделей по мере отдаления от них. Зачастую мы можем наблюдать размытие текстуры пола вдали от себя, но если мы включим фильтрацию, то границы между различными уровнями детализации размываются. Плюс такой фильтрации в том, что вы можете со спокойной душой ставить значение 16х, ведь этот параметр почти не оказывает давления на процессор и видеокарту.
Также есть и видеоформат блога 🙂
*Ссылка на наш канал в описании профиля*
Ну а на этом всё. Если вам понравилась эта статья и вы узнали что-то новое, обязательно жмите на плюс, а также интересно узнать, нравится ли вам качество видеоформата, если вы его глянули? Большое спасибо вам за внимание, всем удачных каток и стабильного FPS!
SSAO в играх что это
Как работает затенение в компьютерных играх
С появлением 3D-игр у их создателей серьезно прибавилось проблем: о сглаживании мы уже говорили, также мы говорили и о фильтрации текстур. Теперь же поговорим о еще одном эффекте, который позволяет серьезно улучшить реалистичность картинки — о Ambient Occlusion (AO), или о затенении.
В оптике можно выделить три простых градации освещенности — тень (источник света не виден), полутень (источник света виден частично) и освещенное место (источник света виден полностью). Казалось бы — все просто, рассчитать границы тени и полутени можно в два счета с помощью обыкновенных лучей. Однако полученная в результате картинка наводит на мысль, что мы где-то что-то забыли:
Таких черных теней не бывает (ну на Земле по крайней мере), так что сразу становится очевидным, что мы забыли — рассеяние света: суть в том, что в реальном времени фотоны могут отражаться от различных поверхностей и в итоге попадать туда, куда напрямую фотоны от источника не долетают: именно поэтому в тени хоть и темнее, чем на свету, но не черным черно. На Земле таким «рассеивателем» фотонов выступает сама атмосфера.
Но тут возникает вопрос — а как это рассчитать-то? Увы — алгоритма, дающего 100% точное рассеяние света в real-time, нет, однако есть множество хорошо приближенных к реальности алгоритмов, отлаженных настолько, что они спокойно используются в видеоиграх.
Для начала — общая для всех алгоритмов теория: можно ввести так называемую среднюю освещенность всей сцены, своеобразную аппроксимацию непрямого освещения. Но вот проблема в том, что в местах, где есть тень, такая аппроксимация будет давать повышенную яркость. Поэтому можно несколько усложнить ее — снижать яркость в тех местах, куда отраженному свету труднее добраться. То есть для каждого фрагмента сцены мы находим так называемый заграждающий фактор: количество свободных «путей» для фотона деленное на все количество путей фотона до данного участка, и на основе этих данных и средней яркости сцены можно рассчитать яркость конкретного участка.
Однако тут мы получаем очередную проблему — отрисовка геометрии происходит постепенно, поэтому заграждающий фактор также в процессе отрисовки может серьезно меняться. Можно, конечно, рассчитать AO на этапе загрузки сцены, но тогда затенение не коснется динамических объектов (персонажей, машин и т.д.) — а это нехорошо. И тут приходит идея использовать для отрисовки затенения экранное пространство (Screen Space), что в итоге выливается в простейший алгоритм AO — SSAO.
SSAO
Этот алгоритм появился еще в Crysis 10 лет назад. Его суть проста: после построения геометрии у нас остается Z-буфер, или буфер глубины, который включает в себя абсолютно всю информацию о геометрии сцены — а значит никаких проблем сделать AO нет.
Хотя, конечно, кого я обманываю — проблемы есть, и самая серьезная — недостаточная производительность современных видеокарт: для того, чтобы получить более-менее неплохую карту затенения, для каждого фрагмента сцены нужно обсчитывать порядка 200-250 направлений, что позволяет «закопать» любой GPU. Поэтому делается хитрее — используется 8-32 «луча», направленные на выбранный фрагмент сцены, которые каждый раз поворачиваются на случайное значение. В итоге получается терпимое качество картинки с не очень большими затратами на расчеты:
В дальнейшем алгоритм был доработан — стали использоваться карты нормалей, что снизило сложность вдвое и позволило в итоге вдвое увеличить число выборок. Ну и финальный штрих — стали использовать размытие, дабы сгладить шум от случайных выборок.
HBAO и HBAO+
Nvidia не была бы Nvidia, если бы не стала развивать затенение дальше, представив в 2008 году HBAO — Horizon Based Ambient Occlusion. От SSAO это затенение отличалось тем, что оно основано на физической модели, где аппроксимируется интеграл освещенности фрагмента сцены со значениями выборки буфера глубины. Итоговое качество оказывается выше SSAO при большом числе выборок, но мы опять же упираемся в производительность. Поэтому HBAO рендерится обычно в более низком разрешении, что приводит к мерцанию картинки.
Проблема мерцания была исправлена в HBAO+ простым методом, который сейчас активно использует Sony в 4К играх на PlayStation 4 Pro: для рассчета HBAO+ используется шахматный рендеринг, то есть для обработки затенения используется часть предыдущего кадра и половина нового: это требует меньше затрат GPU, но при этом позволяет рендерить затенение в исходном разрешении, что и убирает мерцание.
HDAO
AMD в стороне не остались, и стали использовать собственное затенение (которое, к слову, также работает и на Nvidia) — HDAO (High Definition AO). Увы — AMD не делится алгоритмом, однако известно, что в его основе лежит Gather4 — технология, которая собирает 4 текселя в один регистр. То есть, как и с HBAO, по сути происходит рендеринг в пониженном разрешении. В итоге, в среднем картинка с HBAO и HDAO сравнима по качеству, но опять же — все достаточно сильно зависит от игры: к примеру, в Far Cry 3 с HDAO трава выглядит красивее:
VXAO
С выходом DX12 Nvidia представила принципиально новое затенение — VXAO (Voxel Accelerated Ambient Occlusion). Его суть в том, что оно работает уже не с пикселями и текселями (то есть 2D-объектами), а с вокселями — аналогом пикселя в 3D. И теперь мы используем не Z-буфер, а воксельное построение сцены, поэтому алгоритм состоит из трех пунктов: вокселизация, постобработка вокселей и трассировка конуса. Вокселизация выполняется путем рендеринга треугольных сеток в трехмерную текстуру, и поэтому ее производительность сильно зависит от общего количества треугольников, размера этих треугольников и количества вызовов рисования, необходимых для их рендеринга. Постобработка объединяет проходы, такие как очистка, фильтрация и понижающие выборки вокселей, а ее производительность зависит от общего количества вокселей, созданных во время вокселизации. Типичное время после обработки составляет 0,5 – 1,5 мс. И, наконец, трассировка конуса выполняется в пространстве экрана, поэтому его производительность зависит от разрешения экрана и скорости затенения. Итоговое качество картинки оказывается в куда лучше, чем с HBAO+:
На этом все. Советы для игроков простые: если компьютер хорошо тянет игру без AO, то можно попробовать включить SSAO или HBAO — обычно это снижает fps не более чем на 10%. Если же и с ними производительность отличная — можно попробовать HBAO+ и HDAO. Ну и для самых топовых видеокарт современности можно порекомендовать набирающее обороты VXAO — оно крайне требовательно к ресурсам (в том числе и к видеопамяти), поэтому даже в FHD оно будет доступно лишь пользователям старших Nv >
Гайд. За что отвечают настройки графики в играх и как они влияют на FPS
Разрешение экрана
Думаю, с понятием разрешения знакомы уже более-менее все игроки, но на всякий случай вспомним основы. Все же, пожалуй, главный параметр графики в играх.
Изображение, которое вы видите на экране, состоит из пикселей. Разрешение — это количество пикселей в строке, где первое число — их количество по горизонтали, второе — по вертикали. В Full HD эти числа — 1920 и 1080 соответственно. Чем выше разрешение, тем из большего количества пикселей состоит изображение, а значит, тем оно четче и детализированнее.
Влияние на производительность
Очень большое.Увеличение разрешения существенно снижает производительность. Именно поэтому, например, даже топовая RTX 2080 TI неспособна выдать 60 кадров в 4K в некоторых играх, хотя в том же Full HD счетчик с запасом переваливает за 100. Снижение разрешения — один из главных способов поднять FPS. Правда, и картинка станет ощутимо хуже.
В некоторых играх (например, в Titanfall) есть параметр так называемого динамического разрешения. Если включить его, то игра будет в реальном времени автоматически менять разрешение, чтобы добиться заданной вами частоты кадров.
Вертикальная синхронизация
Если частота кадров в игре существенно превосходит частоту развертки монитора, на экране могут появляться так называемые разрывы изображения. Возникают они потому, что видеокарта отправляет на монитор больше кадров, чем тот может показать за единицу времени, а потому картинка рендерится словно «кусками».
Вертикальная синхронизация исправляет эту проблему. Это синхронизация частоты кадров игры с частотой развертки монитора. То если максимум вашего монитора — 60 герц, игра не будет работать с частотой выше 60 кадров в секунду и так далее.
Есть и еще одно полезное свойство этой опции — она помогает снизить нагрузку на «железо» — вместо 200 потенциальных кадров ваша видеокарта будет отрисовывать всего 60, а значит, загружаться не на полную и греться гораздо меньше.
Впрочем, есть у Vsync и недостатки. Главная — очень заметный «инпут-лаг», задержка между вашими командами (например, движениями мыши) и их отображением в игре.
Поэтому играть со включенной вертикальной синхронизацией в мультипеере противопоказано. Кроме того, если ваш компьютер «тянет» игру при частоте ниже, чем заветные 60 FPS, Vsync может автоматически «лочиться» уже на 30 FPS, что приведет к неслабым таким лагам.
Лучший способ бороться с разрывами изображения на сегодняшний день — купить монитор с поддержкой G-Sync или FreeSync и соответствующую видеокарту Nvidia или AMD. Ни разрывов, ни инпут-лага.
Влияние на производительность
В общем и целом — никакого.
Сглаживание(Anti-aliasing)
Если нарисовать из квадратных по своей природе пикселей ровную линию, она получится не гладкой, а с так называемыми «лесенками». Особенно эти лесенки заметны при низких разрешениях. Чтобы устранить этот неприятный дефект и сделать изображения более четким и гладким, и нужно сглаживание.
Здесь и далее — слева изображение с отключенной графической опцией (или установленной на низком значении), справа — с включенной (или установленной на максимальном значении).
Технологий сглаживания несколько, вот основные:
Влияние на производительность
От ничтожного (FXAA) до колоссального (SSAA). В среднем — умеренное.
Качество текстур
Один из самых важных параметров в настройках игры. Поверхности всех предметов во всех современных трехмерных играх покрыты текстурами, а потому чем выше их качество и разрешение — тем четче, реалистичнее картинка. Даже самая красивая игра с ультра-низкими текстурами превратится в фестиваль мыловарения.
Влияние на производительность
Если в видеокарте достаточно видеопамяти, то практически никакого. Если же ее не хватает, вы получите ощутимые фризы и тормоза. 4 гигабайт VRAM хватает для подавляющего числа современных игр, но лучше бы в вашей следующей видеокарте памяти было 8 или хотя бы 6 гигабайт.
Анизотропная фильтрация
Анизотропная фильтрация, или фильтрация текстур, добавляет поверхностям, на которые вы смотрите под углом, четкости. Особенно ее эффективность заметна на удаленных от игрока текстурах земли или стен.
Чем выше степень фильтрации, чем четче будут поверхности в отдалении.
Этот параметр влияет на общее качество картинки довольно сильно, но систему при этом практически не нагружает, так что в графе «фильтрация текстур» советуем всегда выставлять 8x или 16x. Билинейная и трилинейная фильтрации уступают анизотропной, а потому особенного смысла в них уже нет.
Влияние на производительность
Тесселяция
Технология, буквально преображающая поверхности в игре, делающая их выпуклыми, рельефными, натуралистичными. В общем, тесселяция позволяет отрисовывать гораздо более геометрически сложные объекты. Просто посмотрите на скриншоты.
Влияние на производительность
Зависит от игры, от того, как именно движок применяет ее к объектам. Чаще всего — среднее.
Качество теней
Все просто: чем выше этот параметр, тем четче и подробнее тени, отбрасываемые объектами. Добавить тут нечего. Иногда в играх также встречается параметр «Дальность прорисовки теней» (а иногда он «вшит» в общие настройки). Тут все тоже понятно: выше дальность — больше теней вдалеке.
Влияние на производительность
Зависит от игры. Чаще всего разница между низкими и средними настройками не столь велика, а вот ультра-тени способны по полной загрузить ваш ПК, поскольку в этом случае количество объектов, отбрасывающих реалистичные тени, серьезно вырастает.
Глобальное затенение (Ambient Occlusion)
Один из самых важных параметров, влияющий на картинку разительным образом. Если вкратце, то AO помогает имитировать поведения света в трехмерном мире — а именно, затенять места, куда не должны попадать лучи: углы комнат, щели между предметами и стенами, корни деревьев и так далее.
Существует два основных вида глобального затенения:
SSAO (Screen space ambient occlusion). Впервые появилось в Crysis — потому тот и выглядел для своего времени совершенно фантастически. Затеняются пиксели, заблокированные от источников света.
HBAO (Horizon ambient occlusion). Работает по тому же принципу, просто количество затененных объектов и зон гораздо больше, чем при SSAO.
Влияние на производительность
Глубина резкости (Depth of Field)
То самое «боке», которое пытаются симулировать камеры большинства современных объектов. В каком-то смысле это имитация особенностей человеческого зрения: объект, на который мы смотрим, находится в идеальном фокусе, а объекты на фоне — размыты. Чаще всего глубину резкости сейчас используют в шутерах: обратите внимание, что когда вы целитесь через мушку, руки персонажа и часть ствола чаще всего размыты.
Впрочем, иногда DoF только мешает — складывается впечатление, что у героя близорукость.
Влияние на производительность
Целиком и полностью зависит от игры. От ничтожного до довольно сильного (как, например, в Destiny 2).
Bloom (Свечение)
Этот параметр отвечает за интенсивность источников света в игре. Например, с включенным Bloom, свет, пробивающийся из окна в помещение, будет выглядеть куда ярче. А солнце создавать натуральные «засветы». Правда, некоторые игры выглядят куда реалистичнее без свечения — тут нужно проверять самому.
Влияние на производительность
Чаще всего — низкое.
Motion Blur (Размытие в движении)
Motion Blur помогает передать динамику при перемещениях объекта. Работает он просто: когда вы быстро двигаете камерой, изображение начинает «плыть». При этом главный объект (например, руки персонажа с оружием) остается четким.
Сглаживание в играх и другие настройки, как выжать максимум из видеокарты?
Здравствуйте, уважаемые читатели блога Pc-information-guide.ru. Поскольку среди моих читателей наверняка есть те, кто играет в компьютерные игры, я решил посвятить сегодняшнюю статью игровым настройкам, а конкретно сглаживанию и другим важным параметрам, в той или иной степени оказывающим влияние на производительность видеокарты. Поэтому сегодня мы с вами будем разбираться, как и какие настройки влияют на производительность видеокарты.
Во-первых важно понимать, как и из чего формируется изображение на экране, которое мы видим во время игры. Видеокарте нужно расставить объекты, натянуть текстуры, рассчитать освещение, положить тени, сгладить неровности, и при всем при этом, уложиться буквально в считанные доли секунды! И если какой-то этап занимает больше времени чем положено, появляется заметное глазу “торможение”, или по-научному, проседание кадров в секунду. Вот, посмотрите сами:
Конечно, многое зависит от разрешения (Resolution) как такового. Простым изменением разрешения на одну ступень ниже можно добиться прироста производительности в 30-40%. Однако при этом, независимо от остальных настроек, картинка на экране будет выглядеть “замыленной”. Поэтому самую “вкусную” картинку в игре можно получить, если разрешение соответствует максимальному разрешению (стандартному заводскому) монитора.
Качество и разрешение текстур (см. изображение выше) не так сильно влияют на производительность видеокарты, не так сильно, как качество объектов – потому что, чем больше деталей и объектов одновременно видеокарте нужно удерживать на экране, тем сложнее просчеты самих объектов и теней, которые они отбрасывают. Тени, в свою очередь, нагружают видеокарту весьма ощутимо, потому что объекты как правило движутся, меняется угол обзора, источник освещения, и чтобы тени выглядели мягко и реалистично, видеокарте нужно просчитывать много раз и усреднять итоговые значения.
Есть такая штука, как Ambient Occlusion (глобальное освещение), см. фото выше. Это технология, которая просчитывает как объекты отражают свет, который на них падает, и как близко расположены объекты, затеняя друг друга.
Это создает гораздо более реалистичную картинку с необходимыми затенениями в углах, но ОЧЕНЬ нагружает видеокарту. На сегодняшний день эта технология доступна в двух вариантах: чуть более простой SSAO (Screen Space Ambient Occlusion) и гораздо более продвинутый и прожорливый HBAO (Horizon-Based Ambient Occlusion).
Есть еще Анизотропная фильтрация (anisotropic filtering, AF) или фильтрация текстур. Она нужна для того, чтобы текстуры, которые находятся под углом или далеко от камеры не выглядели слишком мутными и на них не было никаких цветовых артефактов.
Чем выше значение – тем лучше результат фильтрации, однако сразу скажу – эти значения можно выкручивать сразу на “16x”, т.е. на максимальное, и это никак не отразится на производительности даже самой бюджетной видеокарты.
Про сглаживание в играх
Сглаживание (anti aliasing). Что же такое сглаживание? Вы наверняка в играх довольно часто встречались с тем, что у объектов, которые должны в принципе выглядеть ровно и гладко, на краях появляются какие-то непонятные лесенки и зазубрины. Естественно, разработчики игр и видеокарт об этой проблеме знают, поэтому и появилась технология, которая называется “сглаживание”, она и нужна чтобы эти неровности сгладить (что очевидно).
Существует довольно много методов осуществить сглаживание. Первый из них взаимодействует с изображением еще на уровне его построения. К первому методу относится: способ сглаживания SSAA (Supersample anti-aliasing) и MSAA (Multisample anti-aliasing), и еще между ними недавно затесался CSAA (Coverage Sampling Antialiasing) – последний, нечто среднее по производительности и по качеству.
Как все эти способы сглаживания работают? Они создают картинку в несколько раз большую, чем необходимо, а потом сжимают ее до размеров экрана, получается довольно неплохой результат, но нагрузка на видеокарту в этот момент просто нечеловеческая. Потому что в зависимости от того, что вы выберете в настройках игры (2x, 4x или 8x), соответственно и изображение будет в два, четыре или в восемь раз больше необходимого, получается, что и нагрузка в два, четыре или восемь раз больше.
Но, к счастью для нас, есть второй метод, который основан на так называемой пост-обработке, т.е. когда сглаживание применяется уже к сформированной сцене. К этому методу относятся уже 3 способа сглаживания: FXAA (Fast approXimate Anti-Aliasing) – по качеству сравним с четырех кратным MSAA сглаживанием, но при этом он не создает вообще никакой нагрузки на видеокарту, ну или настолько малую, что ее практически незаметно. Правда у FXAA есть один небольшой минус – при этом совсем слегка замыливаются текстуры. На глаз это почти незаметно.
Но если вам это мыло прям режет глаза, для вас есть второй способ SMAA (Sub-pixel Morphological Anti-Aliasing), он дает чуть меньшее размытие, но и настолько же меньшее качество сглаживания, при том, что все так же не нагружает видеокарту. И наконец третий способ – TXAA (Temporal anti-aliasing, если я правильно понял, доступно только на видеокартах от Nv >
Ну а на этом здесь все, про остальные настройки графики в играх поговорим как-нибудь в другой раз. Я надеюсь, что эта статья поможет вам выбрать подходящие настройки в любой игре и выжать максимум производительности из вашей видеокарты.
Настройки в играх: с чувством, с толком, с расстановкой
В связи с многократными вопросами и спорами, связанными с FPS в тестах для видеокарт, представленными на нашем сайте, мы решили более детально остановиться на этом вопросе и рассказать вам про настройки игр.
Все знают, что в современных играх достаточно настроек графики для улучшения качества картинки или повышения производительности в самой игре. Рассмотрим основные настройки, которые присутствуют практически во всех играх.
Разрешение экрана
Пожалуй, этот параметр является одним из главных, влияющих как на качество картинки, так и на производительность игры. Данный параметр зависит исключительно от матрицы ноутбука, и поддержки данного разрешения игрой (от 640х480 до 1920х1080). Тут все просто и пропорционально, чем больше разрешение, тем четче картинка и больше нагрузка на систему, и, соответственно, наоборот.
Качество графики
Практически в каждой игре есть свои стандартные настройки графики, которые вы можете использовать. Обычно это «низкие»», «средние», «высокие» и в некоторых играх присутствует графа «ультра». В эти установки уже изначально заложен набор настроек (качество текстур, сглаживание, анизотропная фильтрация, тени… и многие другие) и пользователь может выбрать профиль, который лучше всего подходит под его конфигурацию ПК. Думаю тут все понятно, чем лучше настройка графики, тем реалистичнее смотрится игра, и, конечно же, возрастают требования к устройству. Ниже вы можете посмотреть видео, и сравнить качество картинки во всех профилях.
Качество текстур
Данная настройка отвечает за разрешение текстур в игре. Чем выше разрешение текстур, тем более четкую и детализированную картинку вы видите, соответственно и нагрузка на GPU будет больше.
Качество теней
Эта настройка регулирует детализацию теней. В некоторых играх тени можно вообще отключить, что даст существенный прирост производительности, но картинка не будет такой насыщенной. На высоких настройках тени будут более реалистичные и мягкие.
Качество эффектов
Данный параметр влияет на качество и интенсивность эффектов, таких как дым, взрывы, выстрелы, пыль и многие другие. В разных играх данная настройка влияет по-разному, в некоторых разницу между низкими и высокими настройками очень тяжело заметить, а в некоторых отличия очевидны. Влияние данного параметра на производительность зависит от оптимизации эффектов в игре.
Качество окружающей среды
Параметр, отвечающий за геометрическую сложность каркасов в объектах окружающего игрового мира, а также их детализацию (особенно заметна разница на дальних объектах). На низких настройках возможны потери детализации объектов (домов, деревьев, машин и т.д.). Удаленные объекты становятся практически плоским, округлые формы получаются не совсем круглыми, при этом практически каждый объект лишается каких-то мелких деталей.
Покрытие ландшафта
В некоторых играх указывается как «Плотность травы» либо носит другие подобные названия. Отвечает за количество травы, кустов, веток, камней и прочего мусора находящегося на земле. Соответственно чем выше параметр, тем более насыщенной разными объектами выглядит земля.
Анизотропная фильтрация
Когда текстура отображается не в своем исходном размере, в нее вставляются дополнительные или убираются лишние пиксели. Для этого и применяется фильтрация. Существует три вида фильтраций: билинейная, трилинейная и анизотропная. Самой простой и наименее требовательной является билинейная фильтрация, но и результат от нее наихудший. Трилинейная фильтрация тоже не даст вам хороших результатов, хоть она и добавляет четкости, но также генерирует артефакты.
Самой лучшей фильтрацией является анизотропная, которая заметно устраняет искажения на текстурах сильно наклоненных относительно камеры. Для современных видеокарт, данный параметр практически не влияет на производительность, но существенно улучшает четкость и естественный вид текстуры.
Сглаживание
Принцип работы сглаживания таков: до вывода картинки на экран она рассчитывается не в родном разрешение, а в двукратном увеличении. Во время вывода картинка уменьшается до нужных размеров, причем неровности по краям объекта становятся менее заметными. Чем больше исходное изображение и коэффициент сглаживания (x2, x4, x8, x16), тем меньше неровностей будет заметно на объектах. Собственно само сглаживание нужно для того чтобы максимально избавится от «лестничного эффекта» (зубцов по краям текстуры).
Существуют разные виды сглаживания, чаще всего в играх встречаются FSAA и MSAA. Полноэкранное сглаживание (FSAA) используется для устранения «зубцов» на полноэкранных изображениях. Минус данного сглаживания заключается в обработке всей картинки целиком, что конечно значительно улучшает качество изображения, но требует большой вычислительной мощности графического процессора.
Multisample anti-aliasing (MSAA), в отличие от FSAA, сглаживает только края объектов, что приводит к небольшому ухудшению графики, но при этом экономит огромную часть вычислительной мощи. Так что если вы не обладаете топовой игровой видеокартой, лучше всего использовать MSAA.
SSAO (Screen Space Ambient Occlusion)
В переводе на русский означает «преграждение окружающего света в экранном пространстве». Является имитацией глобального освещения. Увеличивает реалистичность картинки, создавая более «живое» освещение. Дает нагрузку только на GPU. Данная опция значительно уменьшает количество FPS на слабых графических адаптерах.
Размытие в движение
Также известно как Motion Blur. Это эффект, смазывающий изображение при быстром передвижении камеры. Придает сцене больше динамики и скорости (часто используется в гонках). Увеличивает нагрузку на GPU, тем самым уменьшает количество FPS.
Глубина резкости (Depth of field)
Эффект для создания иллюзии присутствия за счет размытия объектов в зависимости от их положения относительно фокуса. Например, разговаривая с определенным персонажем в игре, вы видите его четко, а задний фон размыто. Такой же эффект можно наблюдать если сконцентрировать взгляд на предмете расположенном вблизи, более дальние объекты будут размыты.
Вертикальная синхронизация (V-Sync)
Синхронизирует частоту кадров в игре с частотой вертикальной развертки монитора. При включенной V-Sync, максимальное количество FPS равно частоте обновления монитора. Если же количество кадров в игре у вас ниже, чем частота развертки монитора, стоит включить тройную буферизацию, при которой кадры подготавливаются заранее, и хранятся в трех раздельных буферах. Преимущество вертикальной синхронизации состоит в том, что она позволяет избавиться от нежелательных рывков, при резких скачках FPS.
Не обошлось и без недостатков, например в новых требовательных играх возможно сильное падение производительности. Также в динамических шутерах или онлайн играх, V-Sync может только навредить.
Заключение
Выше изложены основные, но далеко не все настройки в играх. Стоит напомнить, что каждая игра имеет свой уровень оптимизации, и свой ряд настроек. В некоторых случаях игры с лучшей графикой будут идти на вашем ноутбуке быстрее, чем неоптимизированные игры с более низкими требованиями. Большинство игр позволяет использовать как уже готовые настройки, так и задавать вручную каждый отдельно взятый параметр. Часть из рассмотренных выше эффектов поддерживается только в новых DirectX 11 играх, а в более старых с поддержкой DirectX 9 их просто нет.
Желаем вам приятного времяпровождения и незабываемых ощущений в играх.
Подробности графических настроек ПК-игр. Часть 2
В первой части перевода данной статьи мы успели осветить лишь половину основных графических настроек. В этом материале мы закончим начатое и постараемся объяснить зачем нужны, что делают, и как влияют на производительность и качество картинки параметры вроде ambient occlusion, тесселяции, а также любимые многими блюр и текстуры.
Анизотропная фильтрация
Объяснение: анизотропная фильтрация(фильтрация текстур) создает текстуры поверхностей, которые видны под углом и делает их более четкими. Чутобы увидеть работу анизтропной фильтрации достаточно просто взглянуть на землю в нескольких метрах от себя, а затем сравнить четкость текстуры земли под собой и на отдалении от персонажа. Чем дальше находится точка, в которую направлен ваш взгляд, тем более размытой становится текстура. С включенной анизтропной фильтрацией поверхности расположеные далеко от вас становяться заметно четче.
Эффект фильтрации текстур становится куда заметнее при движении вашего персонажа вперед в игровом мире. Изменение качества прорисовки текстур при приближении к ним может быть достаточно сильным.
Что на скриншоте: внимание на скриншоте стоит обратить на мостовую Праги из Deus Ex: Mankind Divided. На левом скриншоте вы видите, что чем ближе текстура брусчатки к зданию, тем более размытой она становится. На правом скриншоте текстура брусчатки становится куда четче.
Совет: анизотропная фильтрация крайне важна для создания хорошей картинки, к тому же она не накладывает серьезных ограничений на ресурсы вашего ПК. То качество, которые вы получите благодаря этой настройке полностью окупает ту небольшую нагрузку на систему, которая она оказывает. Так что старайтесь держать анизотропную фильтрацию включенной. Рекомендуемые значения 8х или 16х.
Ambient occlusion
Объяснение: Ambient occlusion затемняет места, в которые не должен падать свет. Что мы получаем в результате? Куда более проработанные тени, куда более реалистичное отображение всего окружения. Хотя Ambient occlusion и не занимается прорисовкой теней в реальном времени, эта опция все же требует достаточно много ресурсов. Все дело в том, что при включенном Ambient occlusion игре приходится постоянно просчитывать месторасположение объектов по отношению друг к другу и источникам света, чтобы понять в какие места свет попадать не может. Есть два виде Ambient occlusion:
Что на скриншоте: скрин из игры Deus Ex: Mankind Divided. На левом скриншоте Ambient occlusion отключен, на правом включен HBAO. Особое внимание стоит обратить на стену за микроволновкой и объекты на полках. Можно заметить, что тени стали куда реалистичнее и у картинки появилась глубина.
Совет: SSAO или HBAO крайне рекомендуются к использованию, если вы можете позволить себе пожертвовать определенным количеством процессорных мощностей. На скриншоте показана лишь основа того, что дает включенный Ambient occlusion, общее влияние данной опции на визуальную составляющую игры сложно переоценить.
Bloom
Объяснение: Bloom увеличивает яркость источников света в игровом мире. В основном это сделано для того, чтобы всевозможные источники выглядели более реалистично — чуть ближе к тому, как мы видим их в реальном мире. Свет будет проникать через окна, создавая серьезный контраст в картинке при перемещении игровой камеры из помещения на улицу.
Во многих играх эффект Bloom’a реализован достаточно плохо, что выливается в искусственное перенасыщение светом. Это становится особенно заметно, если поверхности начинают отражать свет и сиять, когда на самом деле такого происходить не должно.
Что на скриншоте: The Witcher 3: Wild Hunt предлагает игрокам возможность включить Bloom, и в этой игре он реализован просто отлично. Если смотреть на солнце с отключенным Bloom’ом, то похоже, что ты смотришь на большой яркий белый шар. Если же включить Bloom, то все выглядит куда более реалистично, со светом, который каскадом расходится по окружению.
Совет: несмотря на то, что качество реализации Bloom’a разниться от игры к игре, мы советуем все же включать эту опцию. Если вам повезло наткнуться на Bloom в его лучшем проявлении, то он добавит картинке реалистичности, а если вам не повезло и вас постоянно отвлекают всевозможные светящиеся поверхности, то эту опцию можно смело отключать.
Motion Blur
Объяснение: идея Motion Blur достаточно проста: окружение вокруг персонажа будет размываться при повороте камеры, чтобы подчеркнуть чувство движения. При этом текстуры, являющиеся частью игрового персонажа размываться не должны.
Совет: многие считают motion blur ненужным, но для некоторых, включение данной опции может добавить картинке привлекательности. Она также помогает немного уменьшить эффект разрыва экрана. Мы советуем выбрать то количество размытия, которое вам больше всего по душе и придерживаться его. Нагрузка на систему конечно разнится от игры к игре, но в последнее время разработчики начали применять новую технологию, которая минимизирует потери кадров.
Тесселяция
Объяснение: тесселяция добавляет детализации поверхностям и объектам в игровом мире. У объектов могут быть карты смещения, которые по сути являются инструкциями к тому, как объект может изменится, если бы в нем было больше полигонов. Тесселяция считывает данную информацию и позволяет получать объекты с куда более сложной геометрией и глубиной прорисовки.
Что на скриншоте: в Metro: Last Light есть несколько моментов, в которых можно увидеть то, как меняется картинка при включенной тесселяции. Тесселяция выключена на левом скриншоте и включена на правом. При включении данной опции камни начинают чуть сильнее выпирать из стены, а трещины становятся немного глубже.
Совет: тесселяция может достаточно серьезно изменить внешний вид игры, но результат зависит исключительно от того, как разработчики реализовали данную функцию. В некоторых случаях тесселяциях изменит внешний вид поверхностей, но не сказать, что они будут выглядеть лучше. В других случаях, данная опция добавит глубины важным кусочкам игрового мира. Если у вас есть возможно протестрировать игру с включенной и выключенной тесселяцией, то вам стоит самим посмотреть, насколько изменится картинка в игре и стоит ли оно того.
Depth of field(глубина резкости)
Объяснение: в играх данная опция является симуляцией глубины резкости применяемой в фотографии. Результатом ее использования становится немного размытые задники и четкая прорисовка объектов на переднем плане. Многие игры ограничивают применение глубины резкости до моментов, когда перед камерой находится лишь один объект, или вы используете зум или прицеливание.
Несмотря на то, что глубина резкости позволяет немного улучшить визуальную составляющую игры, многие считают эту опцию избыточной, ведь временами ненужное размытие может помешать вам в игровом процессе. К тому же в некоторых играх разработчики могут переусердствовать при применении данного эффекта.
Что на скриншоте: этот скрин сделан в Dishonored 2, при взгляде через увеличительное стекло Эмили. Как вы можете увидеть на левом скриншоте, капсула является центром внимания, однако все изображение находится в фокусе. При включении глубины резкости на правом скриншоте, капсула становится единственным элементом, остающимся в фокусе, а все задники размываются.
Совет: глубина резкости делает картинку чуть более привлекательной, но использование данной опции не является обязательным. Из-за того, что она оказывает минимальное влияние на производительность и не слишком-то меняет визуальную составляющую, вы можете устанавливать глубину резкости исключительно из личных предпочтений.
Качество текстур
Объяснение: настройки текстур в разных играх могут по разному менять детализацию миру. В большинстве случаев, детализация поверхностей в игре будет расти по мере увеличение качества текстур в настройках. Стоит правда напомнить, что при очень высокое качество текстур потребует от вашей видеокарты серьезного вложения ресурсов.
Что на скриншоте: этот потертый металлический балкон в Dishonored 2, достаточно наглядно демонстрирует разницу между низким и высоким качеством текстур.
Совет: качество текстур является одной из базовых графических настроек, но низкое, среднее и высокое качество может означать разные вещи в разных играх. Как бы то ни было, всегда лучше стараться поставить качество текстур повыше. Стоит также отметить, что на то, насколько вы сможете насладится красивым окружением влияет и скорость игрового процесса. Если мы говорим о медленной игре, где у вас есть время изучать каждый предмет в игровом мире, то качество текстур позволит вам рассмотреть мельчайшие детали предметов. Если же говорить о скоростных шутерах, то в них крайне легко проглядеть различия между высоким и ультра-высоким качеством текстур.
Качество теней
Объяснение: как и в случае с текстурами, эффект, которые качество теней оказывает на картинку разнится от игры к игре. Зачастую, чем выше качество, те лучше выглядит тень. Стоит также заметить, что этот параметр частенько влияет на то, как тени двигаются. Иногда при движения тени могут превращаться в лесенку из пикселей или терять очертания объектов, что может негативно сказаться на погружении в игровой процесс.
Что на скриншоте: на картинке мы видим Агента 47, которые наслаждается небольшим отдыхом в тени дерева прежде чем приступить к выполнению контракта. На низких настройках тени выглядят как скопление пятен, а на высоких мы мы можем заметить, как прорисовывается тень от отдельных листьев. В случае с Hitman, в движении тени не ведут себя вполне адекватно независимо от настроек.
Совет: качество теней является одной из наиболее важных базовых настроек графики. Самое высокое качество может негативно сказаться на производительности, но вам стоит провести пару экспериментов, чтобы узнать какое качество теней ваша система может выдержать без сильного удара по производительности.
Дальность прорисовки теней
Объяснение: лишь некоторые игры дают вам возможность контролировать дистанцию на которой будут рендерится тени. По сути нет никакой причины отрисовывать тени от объектов, находящихся настолько далеко, что они сами едва заметны. Однако если здание, стоящее в пятидесяти метрах от игрока, потеряет свою тень, то это будет выглядеть достаточно странно. Иногда дальность отрисовки теней привязана к настройкам их качества.
В дни сразу после релиза, Fallout 4 страдал от слишком большой дальности прорисовки теней. Производительность внезапно падала при входе в локации с большим количеством зданий просто потому, что игра отрисовывала тени объектам, находящимся на серьезном расстоянии от игрока. После модификации данной настройки вручную, внезапные падения fps пропадали.
Что на скриншоте: Несмотря на то, что Dishonored 2 не дает вам контроля над тем, на какой дистанции будут прорисовываться тени, данный параметр включен в настройки качества теней. На левом скриншоте вы видите, что тени менее детализированы, но сможете ли вы заметить тот предел, за которым они перестают рендерится?
Взгляните на стражника в правом верхнем углу экрана на обоих скриншотах. В определенный момент игра перестает отрисовывать тени персонажей на низких настройках.
Совет: конечно же дальность прорисовки теней влияет на ваше восприятие игрового мира. Особенно это верно для игр в открытом мире, которые без теней для всевозможных возвышенностей и деревьев будут смотреться не так убедительно. Однако вам нужно самостоятельно понять какую дальность прорисовки потянет ваша система. Мы рекомендуем остановится примерно на ¾ максимального значения, если ваш ПК это позволяет.
Заключение
Одно дело видеть все эти настройки на скриншоте и совсем другое наблюдать их влияние на картинку в движении. Эффекты вроде сглаживания и ambient occlusion куда заметнее в самой игре во время исследования окружения.
Основной задачей возни с графическими настройками является определение идеального сочетания качества картинки и производительности, принимая во внимание возможности вашего железа. Если ваш ПК не может справится с максимальными настройками, то куда лучше будет сосредоточится на тех опциях, которые окажут наибольшее влияние на качество изображения.
Под капотом: объяснение SSAO
Техника имеет свои ограничения и причуды. В последние годы она использовалась в нескольких играх ААА, и даже если она не идеальна, она помогает системе человеческого восприятия лучше понимать сцену, и мы надеемся, что ее добавление в набор технологий наших симов грузовиков будет полезным. Без сомнения, мы хотим ввести дополнительные способы теневого вычисления, которые улучшат или даже вытеснят его.
Мы находимся под постоянным давлением, чтобы улучшить внешний вид нашей игры с помощью вокальной базы наших фанатов. В то же время всегда есть желание заставить игры работать быстрее. Вдобавок к этим иногда конкурирующим запросам, исходящим от базы игроков, наш собственный художественный отдел всегда стремится заполучить новые графические игрушки, чтобы сделать нашу игру богаче и лучше. Всякий раз, когда мы вводим в игру новую графическую функцию, мы стараемся сделать это так, чтобы это не повлияло на производительность игроков со старыми компьютерами, мы не хотим делать игру несовместимой с нашими существующими клиентами. Вот почему есть возможность полностью отключить SSAO и несколько настроек его качества / производительности.
Работа наших программистов над новыми технологиями SSAO / HBAO также потребовала изменений в нашем конвейере искусства и создания произведений искусства. Все 3D-модели в наших играх должны были быть повторно рассмотрены отделом по художественным работам, и любые случаи, когда любые искусственные тени и затемнения уже применялись к модели художником, были изменены. Для некоторых более сложных игровых моделей это было упрощением, которое фактически уменьшило количество треугольников в них, чтобы повысить производительность рендеринга. В какой-то степени мы обменяли часть предполагаемых будущих ручных усилий, которые потребовались бы для создания отдельных красивых 3D-моделей для алгоритмического прохода рендеринга, который объединяет теневое представление для всей сцены, помогая «укоренять» такие объекты, как здания, фонарные столбы и растительность на местности. Что такое SSAO и как это работает?
Поэтому вместо того, чтобы запекать статическую информацию (которая также занимала бы много времени и места для хранения, учитывая масштаб нашей карты мира), мы хотим вычислять ее на лету, во время выполнения. Таким образом, мы можем рассчитать его также для взаимодействия с транспортными средствами, открытия мостов, анимированных объектов и так далее. Хотя есть одна загвоздка. Для такого вычислительного подхода у нас есть только данные, которые видны на экране (вспомним «экранное пространство»), поэтому, как только какая-то часть игрового мира выходит из видимой рамки, ее нельзя использовать для оценки окклюзии. Это ограничение создает различные артефакты, такие как исчезновение окклюзии на стене, первоначально вызванное объектом, который только что оказался за краем экрана и, таким образом, стал невидимым не только для вас, но и для алгоритма, поэтому он перестал вносить вклад в вычисление окклюзии.
Мы упоминали, что методика нашего выбора основана на горизонте. Это означает, что мы не исследуем окружающую среду, снимая лучи в трехмерном мире, вместо этого мы анализируем полусферу выше / вокруг каждого пикселя, чтобы увидеть, как далеко он открывается, пока не заблокирован, сколько света пропускает окружающая геометрия используя z-буфер в качестве нашего прокси. Полушарие фактически аппроксимируется несколькими прогонами вдоль линии, повернутой вокруг данного пикселя. Если мы сможем полностью следовать вдоль этого полушария, то нет преграды. Если алгоритм выбирает значение в z-буфере, которое блокирует входящий свет, он определяет уровень окклюзии. Алгоритм оптимизирован для производительности, но его ограничение заключается в том, что как только он попадает во что-либо, даже, возможно, в небольшой объект, он прекращает дальнейшее исследование. Это может вызвать «чрезмерную окклюзию» проблема и может быть замечена как визуальный артефакт, когда какой-то относительно тонкий объект, такой как столб дорожного знака, вызывает сильную окклюзию на соседней стене. Вы можете попытаться обнаружить такие маленькие объекты и пропустить их, что, в свою очередь, может привести к «недостаточной окклюзии» на тонких уступах. Мы выбрали первое.
Так что, как видите, идея не такая уж сложная, для опытного программиста в любом случае;), но здесь требуется много вычислений, что создает некоторую нагрузку на 3D-ускоритель. Итак, мы создали несколько профилей производительности, каждый из которых использует сочетание методов оптимизации:
Мы надеемся, что вся эта информация была интересной и полезной для вас. Мы отправим вам виртуальную пятерку, если вы прочитаете эту статью до этого момента. Вы заслуживаете печенье и большую чашку горячего шоколада! Если вы все еще хотите получить более подробную информацию по этой теме, см., Например, эту ссылку [www.cse.chalmers.se].
Спасибо за ваше время и поддержку, и мы еще увидимся в некоторых следующих статьях из раздела «Под капотом», которые мы время от времени приносим для нашего #BestCommunityEver.
Также не забывайте, что летняя распродажа Steam скоро заканчивается! Посетите нашу страницу для разработчиков.