Что лучше ssao hdao или hbao

Как работает затенение в компьютерных играх

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

С появлением 3D-игр у их создателей серьезно прибавилось проблем: о сглаживании мы уже говорили, также мы говорили и о фильтрации текстур. Теперь же поговорим о еще одном эффекте, который позволяет серьезно улучшить реалистичность картинки — о Ambient Occlusion (AO), или о затенении.

В оптике можно выделить три простых градации освещенности — тень (источник света не виден), полутень (источник света виден частично) и освещенное место (источник света виден полностью). Казалось бы — все просто, рассчитать границы тени и полутени можно в два счета с помощью обыкновенных лучей. Однако полученная в результате картинка наводит на мысль, что мы где-то что-то забыли:
Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao
Таких черных теней не бывает (ну на Земле по крайней мере), так что сразу становится очевидным, что мы забыли — рассеяние света: суть в том, что в реальном времени фотоны могут отражаться от различных поверхностей и в итоге попадать туда, куда напрямую фотоны от источника не долетают: именно поэтому в тени хоть и темнее, чем на свету, но не черным черно. На Земле таким «рассеивателем» фотонов выступает сама атмосфера.

Но тут возникает вопрос — а как это рассчитать-то? Увы — алгоритма, дающего 100% точное рассеяние света в real-time, нет, однако есть множество хорошо приближенных к реальности алгоритмов, отлаженных настолько, что они спокойно используются в видеоиграх.

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

Однако тут мы получаем очередную проблему — отрисовка геометрии происходит постепенно, поэтому заграждающий фактор также в процессе отрисовки может серьезно меняться. Можно, конечно, рассчитать AO на этапе загрузки сцены, но тогда затенение не коснется динамических объектов (персонажей, машин и т.д.) — а это нехорошо. И тут приходит идея использовать для отрисовки затенения экранное пространство (Screen Space), что в итоге выливается в простейший алгоритм AO — SSAO.

SSAO

Этот алгоритм появился еще в Crysis 10 лет назад. Его суть проста: после построения геометрии у нас остается Z-буфер, или буфер глубины, который включает в себя абсолютно всю информацию о геометрии сцены — а значит никаких проблем сделать AO нет.

Хотя, конечно, кого я обманываю — проблемы есть, и самая серьезная — недостаточная производительность современных видеокарт: для того, чтобы получить более-менее неплохую карту затенения, для каждого фрагмента сцены нужно обсчитывать порядка 200-250 направлений, что позволяет «закопать» любой GPU. Поэтому делается хитрее — используется 8-32 «луча», направленные на выбранный фрагмент сцены, которые каждый раз поворачиваются на случайное значение. В итоге получается терпимое качество картинки с не очень большими затратами на расчеты:

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

В дальнейшем алгоритм был доработан — стали использоваться карты нормалей, что снизило сложность вдвое и позволило в итоге вдвое увеличить число выборок. Ну и финальный штрих — стали использовать размытие, дабы сгладить шум от случайных выборок.

HBAO и HBAO+

Nvidia не была бы Nvidia, если бы не стала развивать затенение дальше, представив в 2008 году HBAO — Horizon Based Ambient Occlusion. От SSAO это затенение отличалось тем, что оно основано на физической модели, где аппроксимируется интеграл освещенности фрагмента сцены со значениями выборки буфера глубины. Итоговое качество оказывается выше SSAO при большом числе выборок, но мы опять же упираемся в производительность. Поэтому HBAO рендерится обычно в более низком разрешении, что приводит к мерцанию картинки.

Проблема мерцания была исправлена в HBAO+ простым методом, который сейчас активно использует Sony в 4К играх на PlayStation 4 Pro: для рассчета HBAO+ используется шахматный рендеринг, то есть для обработки затенения используется часть предыдущего кадра и половина нового: это требует меньше затрат GPU, но при этом позволяет рендерить затенение в исходном разрешении, что и убирает мерцание.

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

HDAO

AMD в стороне не остались, и стали использовать собственное затенение (которое, к слову, также работает и на Nvidia) — HDAO (High Definition AO). Увы — AMD не делится алгоритмом, однако известно, что в его основе лежит Gather4 — технология, которая собирает 4 текселя в один регистр. То есть, как и с HBAO, по сути происходит рендеринг в пониженном разрешении. В итоге, в среднем картинка с HBAO и HDAO сравнима по качеству, но опять же — все достаточно сильно зависит от игры: к примеру, в Far Cry 3 с HDAO трава выглядит красивее:

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao
На этом все. Советы для игроков простые: если компьютер хорошо тянет игру без AO, то можно попробовать включить SSAO или HBAO — обычно это снижает fps не более чем на 10%. Если же и с ними производительность отличная — можно попробовать HBAO+ и HDAO. Ну и для самых топовых видеокарт современности можно порекомендовать набирающее обороты VXAO — оно крайне требовательно к ресурсам (в том числе и к видеопамяти), поэтому даже в FHD оно будет доступно лишь пользователям старших Nvidia GTX 900ой и 1000ой линейки, а также владельцам старших AMD RX, Fury и Vega.

Источник

Технологии графики в современных играх, часть 1: Новомодные свистелки-перделки

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Вступление

Ты вступление не читаешь. Тебе оно не интересно.
Мне тоже не интересно описывать, что я за хрен с горы и нафига тут вылез. Но надо.
Короче, крути вниз.

Всем привет.
Наблюдая в недавнем стриме по MATRIX: Path of Neo за тем, как Вася с Максом рассуждают на тему LOD’ов, я понял одну интересную вещь: в современных играх меню с настройками графики представляет собой что-то совершенно непотребное. Оно либо жутко кастрировано, либо открывает для пользователя такую простыню непонятных слов, в которой и чёрт ногу сломит.
Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Ладно, я — сам работаю в игрострое. Так что мне-то понятно, какая настройка за что отвечает. Но порой тоже не без трудностей. А вот простых игроков, наверное, при чтении всех этих названий одолевает тихий ужас.
Причём, мир не стоит на месте, и новые графические «фичи» появляются каждый год, а то и месяц. Недавно — вон, свет увидел TressFX.

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

Тем временем, меню всё разрастается и разрастается…
Не удивлюсь, если через пару лет в сингле какого-нибудь ААА-шутера в туториал добявят объяснение графических настроек. А пока — я постараюсь помочь всем интересующимся сориентироваться во всём этом многообразии.

Сразу извиняюсь за возможно «не такой» формат повествования.
Вообще, это далеко не первый мой рассказ на подобную тему. Но обычно подобные темы я обсуждаю с другими такими же «CG-гиками» (коллегами по цеху). А вот в блогах на SG — я пишу впервые. Так что местами могу «не попасть» в то, как тут принято.
Постараюсь не разводить нудятину и осветить тему без излишних технических подробностей. Так что надеюсь обойти стороной всякие вертексные/пиксельные шейдеры, шейдерные модели, graphics pipeline и т.п. Но если что — ссаными тряпками прошу не закидывать.
Как говорится, «это мой первый пост, не судите строго».

Итак, ближе к делу. Рассказ о технологиях пойдёт в порядке их «свежести». А начнём с…

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

AMD TressFX

Эта технология — просто идеальный пример одного тренда, который прослеживается в игровой индустрии испокон веков. Суть его вот в чём: игровая индустрия сама по себе не придумывает практически никаких технологий.
Просто время идёт, мощности железа растут. И со временем, пускай и с какими-то упрощениями, становится возможным делать в реалтайме то, что раньше было доступно только в «тяжёлом» рендере… ну, то есть, в том, что геймеры именуют «CGI-роликами».
Иными словами, практически все технологии, появившиеся в играх — всего лишь упрощённое заимствование того, что уже давным-давно широко используется в кино и изучено вдоль и поперёк.

Собственно, что такое TressFX? А очень просто: это всего лишь готовый кусок программного кода от AMD, с помощью которого можно считать волосы на видеокарте.
Вообще 3D-шники умеют делать волосы уже много-много лет. Ты их не раз видел во всяких 3D-мультиках.
Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Просто раньше это делалось на проце и требовало этих самых процов дофига. Естественно, ни о каком реалтайме — и речи быть не могло.
Поэтому в играх причёски в любом случае делались такими полигональными «лоскутками», на которых волосы были просто текстурой.
Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbaoЧто лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbaoЧто лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao
Предыдущие картинки взяты из легендарного в среде 3D-шников making-of’а модели «Varga» от Paul Tosca.
В самом making-of’е картинок ещё больше, и есть gif’ки, позволяющие посмотреть модельку со всех сторон.

А теперь гигагерцы выросли, видюхи растолстели. И игровые программисты могут просто взять этот готовый TressFX и воткнуть его в игру: волосы будут считаться в реалтайме на GPU. Считай, ничего делать не надо: покрутил пару параметров, настроил длину — и очередная пара косичек готова.

Причём, на видеокарте считается не только то, как эти волосы выглядят, но и их физика. То есть, как движется каждый волосок.
В будущем это даст гораздо большую реалистичность стрижек у персонажей: они будут выглядеть, прям как настоящие. Но пока что видюхи попросту не настолько сильные, чтоб держать в кадре хотя бы две таких причёски.
Ну то есть даже на топовом Радеоне на расчёт одной такой шевелюры уходит столько же ресурсов, сколько на всю остальную сцену. В результате — игра тормозит, а волосы глючат (и выглядят хуже, чем сделанные по старинке). Что недавно вышедшая Лара наглядно продемонстрировала.
Так что на сегодняшний момент TressFX нужна не столько игрокам, сколько разработчикам. Это банально проще: не париться с созданием геометрии и текстур, а считать волосы по физике, «в лоб».

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

GPU Particles (частицы на видюхе)

Всё очень просто: видеокарта лучше справляется с задачами, которые легко распараллелить.
Ну то есть, считать много всего однотипного — это к видюхе. Считать что-то одно сложное — это к процу.

В DirectX 11 появилась такая штука (DirectCompute), которая позволяет разработчикам игр самостоятельно считать на GPU практически что угодно.
Естественно, благодаря этому те вещи, которые сами по себе хорошо параллелятся — первым же делом и были перенесены с проца на видюху. Что позволило увеличить детализацию этих «вещей» в несколько раз.

Ярчайший пример — системы частиц. У нас в кадре есть дофига маленьких-маленьких объектов. Вроде песчинок, снежинок, капель воды… Так вот. Раньше мы их считали на проце, поэтому приходилось исхитряться. Например, рисуя вместо одной частицы текстуру, где их 100.
А теперь — мы их считаем на видюхе, так что можем делать это по-честному. Вместе со всей физикой. Это позволяет нам ворочать в кадре буквально миллионами частиц, создавая просто ошеломительные эффекты.
Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbaoЧто лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao
Интерактивное онлайн-демо с адским числом частиц прямо в браузере (требуется DX11 + нужно установить Unity Web Player)

Некоторые считают, что GPU-частицы, как и другие новомодные фичи — исключительно прерогатива DX11. На самом деле — современный OpenGL может всё то же самое, а местами — даже больше. В чём легко убедиться, погуглив на ютубе.
Так что. Тот факт, что современные игры выпускаются с упором на DirectX — это даже не какой-то заговор Мелко-Мягких, а банальная инерция игроделов.
С технической точки зрения ничто не мешало уже FarCry 3 или Crysis 3 работать не на DirectX, а на OpenGL. А он, вообще-то, кросс-платформенный. То есть, разработчики один раз пишут шейдер, который одинаково отработает и на Windows, и на MacOS, и на Linux.
А учитывая, какие операционки используются на PS4 и грядущем Steam Machines — улавливаешь мысль? Очень скоро произойдёт…
Ну да ладно, это уже совсем другая история.
Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Voxel Cone Tracing

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Tesselation

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Что это нам даёт? Ну, вообще-то, сама по себе тесселяция ничего не даёт. Но зато, если её комбинировать с другими технологиями — можно сделать тот самый «ГРАФОН. 111», на который фапают графодрочеры.

В самом простом случае — да, можно добавить к тесселяции другую технологию (vector displacement), которая по специальной текстуре рельефа «выдавит» точки на тесселированом объекте. Это позволит добавить, собственно, рельеф, сделав прям-таки фотореалистично детализированный уровень. Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao
Но ведь двигать точки на поверхности можно не только по заранее сделанной фиксированной текстуре. Вместо текстуры величину смещения можно получать по какому-нибудь хитрому алгоритму. То есть прямо во время игры, при отрисовке каждого кадра для каждой точки вычисляется, куда её сместить… хм, не совсем понятно, наверное?
Давай так. Вот у текстуры — есть разрешение. Рано или поздно, когда ты приблизишься — увидишь пиксели. А у алгоритма разрешения нет. То есть, приближать/отдалять можно сколько угодно, не теряя при этом ни детализации, ни производительности. Таким способом (он называется procedural displacement) можно из одной плоскости… выдавливать целые ландшафты. И сколь близко бы ты на него ни смотрел — он всегда будет очень детализированным.

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Можешь прикинуть такие масштабы в новом Масс Эффекте?

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

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

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

Кроме того, использование тесселяции позволяет вообще отказаться от технологии LOD (Level of Detail), о которой я упоминал в начале. Проще говоря, разработчики за те же деньги смогут сделать больше объектов на уровне. То есть, не только сами объекты при близком разглядывании будут более детализированными, но и уровни в целом будут более разнообразными. Но это только если делать игру исключительно с расчётом на DX11 и соответствующее железо.

Так что если твой комп тянет тесселяцию — лучше по умолчанию её включать. Игра так будет не только более красивой, но и работать может быстрее.

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Realtime Ambient Occlusion

High Definition Ambient Occlusion — AO высокого разрешения.
Реализация от AMD. Картинка натуральнее, чем с HBAO. Что лично меня как поклонника AMD/ATI — радует.
Но вот со скоростью — те же непонятки. На видюхах от AMD — быстрее, чем HBAO, но медленне, чем SSAO. На видюхах от нвидии — бывает по-разному. В том числе бывает, что HDAO быстрее, чем «родной» HBAO.

В общем, обычно HDAO/HBAO — медленнее и качественнее, чем SSAO. Качество картинки в любом случае улучшается так: SSAO — HBAO — HBAO+ — HDAO (хотя лично я считаю, что первые два надо поменять местами). Но вот какой вариант быстрее — проще самому попробовать в игре.

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

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

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

Bonus: DirectX 11 vs OpenGL 4

Многие годы DirectX царственно восседал на троне неоспоримого лидера по графическим прибамбасам. Чем Microsoft и жила. В эпоху Windows XP «играть в игры» было практически синонимом «пользоваться Windows». Да что уж там, ситуация сохраняется по сей день. Когда говорят «ПК», то по умолчанию подразумевается Windows 7 со встроенным в неё DirectX’ом.
На консолях есть свои графические библиотеки — но на то они и консоли. А на ПК безраздельно правит DirectX…

Однако в последнее время эта его «безраздельность» нехило так пошатнулась. Дело в том, что, действительно, OpenGL всегда не дотягивал до возможностей DirectX, из-за чего игроделы выбирали последнего. OGL всегда «как бы мог» всё то же самое, но со скрежетом. Всегда проигрывал по скорости. Всегда «не дотаягивал» по качеству итоговой картинки или количеству параметров.
Всегда.
До релиза OpenGL 4.

С его появлением в индустрии, можно сказать, пройдена точка невозврата. Если сравнивать DX11 и OGL 4 — то выясняется, что в конкретно этих двух версиях уже начинает лидировать OpenGL. Не с диким отрывом, нет. Потихоньку-помаленьку… вот тут рендерится быстрее, вот там возможностей больше, вот здесь код чище.
Но в сумме набирается, что сегодняшний OGL не только не уступает по возможностям перед DirectX, но в чём-то даже превосходит. Об этом я вскользь упоминал в разделе про GPU-партиклы. Но решил на этом остановиться поподробнее.
Ведь, пробежавшись взглядом по статье, я заметил, что все описанные в ней технологии, кроме TressFX, есть параллельно и на DX, и на OGL. А аналог TressFX в принципе можно сделать и на нынешнем OGL.

Относительно недавно даже появился специальный игровой движок — Unigine. Его, как говорится, «killing feature», на которую упирают создатели — это то, что он обеспечивает совершенно идентичную картинку на всех платформах. На Windows он использует DirectX, на остальных — OpenGL.
Собственно, та самая демка, которая демонстрирует прелести тесселяции, которую все видели — она сделана на Unigine:
Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

С появлением движка Unigine — на ютубе стали вылазить сравнительные сплит-скрин бенчмарки одной и той же сцены на DX и на OGL. И, глядя на них, начинаешь замечать едва видимые, но отличия. Вот тут свет считается точнее, вот там расфокус размывается правильнее, вот здесь тесселяция плотнее, а линзовые эффекты физически корректнее.
А потом выясняется, что на некоторых конфигурациях OGL ещё и быстрее.
В общем, все и так поняли, что я хочу сказать. Оставлю свои эмоции в стороне и просто предоставлю одно из таких видео:

Источник

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

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 hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

любая незакрытая поверхность (опционально на определенном расстоянии) горит

Даже при трассировке лучей это просто быстрый и грязный способ выделить мелкие детали на моделях.

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

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

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

В этой статье есть еще несколько наглядных примеров.

Этот алгоритм пытается решить проблемы SSAO. Для этого используется дополнительная информация, а именно карта нормалей. Вместо поиска окклюдеров вокруг пикселя в пространстве экрана он пытается восстановить небольшие фрагменты сцены и сделать более обоснованное приближение яркости, которая должна быть там.

Вы можете очень отчетливо заметить этот потолок лицом внизтакже столб темнее наверху.

Что лучше ssao hdao или hbao. Смотреть фото Что лучше ssao hdao или hbao. Смотреть картинку Что лучше ssao hdao или hbao. Картинка про Что лучше ssao hdao или hbao. Фото Что лучше ssao hdao или hbao

В статье 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 этого не делает.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *