Современные игры становятся всё красивее и технологичнее, вспомнить те же RTX от Nvidia, но как меняют изображение настройки в играх?
Сегодня попытаемся разобраться.
Анизотропная фильтрация
Когда текстура отображается не в своём исходном размере, ей нужно добавлять дополнительные или убирать лишние пикселы. Для этих манипуляций нужна фильтрация: билинейная, трилинейная и анизотропная.
Как вы видите, билинейная является самым простым алгоритмом и вместе с тем даёт даёт наихудший результат. Трилинейная уже чётче, но не так как более продвинутая анизотропная фильтрация. Она отлично борется с эффектом ступенчатости, когда одни части текстуры размываются сильнее других, и граница между ними становится заметной, в отличии от билинейной и трилинейной фильтрации.
Анизотропная фильтрация имеет только одну настройку - коэффициент фильтрации (2х, 4х, 8х, 16х). Значений 4х и 8х обычно бывает достаточно для избавления от большей части графических искажений, а вот при переходе от 8х к 16х коэффициенту фильтрации снижение производительности будет небольшим , т.к. дополнительная обработка понадобится только лишь для малого числа не фильтрованных ранее пикселов.
Шейдеры
Шейдеры – это небольшие программы, которые могут производить определенные манипуляции с 3D-сценой, например, изменять освещенность, накладывать текстуру, добавлять постобработку и т.д.
Шейдеры делятся на три типа: вершинные (Vertex Shader) оперируют координатами, геометрические (Geometry Shader) могут обрабатывать не только отдельные вершины, но и целые геометрические фигуры, состоящие максимум из 6 вершин, пиксельные (Pixel Shader) работают с отдельными пикселами и их параметрами.
Вертикальная синхронизация
Это синхронизация кадров игры с частотой вертикальной развертки монитора. Ее суть заключается в том, что полностью просчитанный игровой кадр выводится на экран в момент обновления на нем картинки.
Главная задача вертикальной синхронизации - это устранение эффекта сдвинутого кадра, возникающего, когда нижняя часть дисплея заполнена одним кадром, а верхняя – уже другим, сдвинутым относительно предыдущего.
Parallax mapping
Parallax mapping – это модифицированная версия известной техники bumpmapping, используемой для придания текстурам рельефности. Например таким как стены или мощёные дороги, при этом объект остаётся плоским.
Anti-Aliasing
Оно же сглаживание - технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских или объёмных изображений.
Интересный факт:
Сглаживание было придумано в 1972 году в Массачусетском технологическом институте в Architecture Machine Group, которая позже стала основной частью Media Lab.
Есть несколько методов сглаживания:
- FXAA - метод сглаживания Nvidia. Самый производительный, но самый простой метод сглаживания, представляющий собой однопроходный пиксельный шейдер, который обсчитывает результирующий кадр на этапе постобработки.
- MSSA - этот способ является популярным и до сих пор используется в играх. Изображение генерируется с более высоким разрешением, чем отображается. Во-вторых обнаруживает края объектов и только размазывает их. Это улучшает конечный результат и оказывает несущественное влияние на производительность, хотя следует отметить, что это все-таки сказывается на количестве отображаемых кадров.
- MFAA - тоже метод сглаживания от Nvidia. Он производит сложную выборку пикселей как в одном кадре, так и сразу в нескольких кадрах. После этого она использует специально разработанный синтезирующий фильтр для создания изображений лучшего качества со скоростью, намного превышающей традиционное сглаживание.
Методов сглаживания ещё больше, но я затронул только три из них.
Тесселяция
Это автоматизированный процесс добавления новых выпуклых (в произвольное кол-во раз) многоугольников в полигональную сетку с целью повышения детализации сетки. При этом нагрузка на ПК повышается.
Пост-процессинг
Это все эффекты, которые накладываются на уже на готовый кадр просчитанной 3D-сцены, для улучшения готовой картинки.
К нему относятся:
Bloom
Bloom нередко применяется совместно с HDR, а еще у него есть довольно близкий родственник – Glow, именно поэтому эти три техники часто путают.
Bloom симулирует эффект, который можно наблюдать при съемке очень ярких сцен обычными камерами. На таких изображениях кажется, что интенсивный свет занимает больше объема, чем должен, и «залазит» на объекты, хотя и находится позади них.
High dynamic range (HDR)
Эффект, часто используемый в игровых сценах с контрастным освещением. Если одна область экрана является очень яркой, а другая затемненной, многие детали в каждой из них теряются, и они выглядят монотонно. HDR добавляет больше градаций в кадр и позволяет детализировать сцену.
Также он часто применяется для создания эффекта приспособления зрения, например когда после просиживания штанов в своей уютной, но тёмной комнаты ГГ выходит на улицу в ясный день.
Зернистость
Это артефакт, появляющийся в аналоговом ТВ при плохом сигнале, на старых видеокассетах или фотографиях.
Большинство игроков, выключают этот эффект, поскольку он ухудшает качество изображения, а не наоборот. Но в некоторых хоррорах шум на экране добавляет атмосферности.
Motion Blur
Это эффект размазывания изображения при быстром вращении камеры, в основном используется в играх, где нужно придать больше динамики и скорости, например гонки.
Эффект также поможет при необходимости скрыть низкую частоту смены кадров и добавить плавности в игровой процесс.
Ambient Occlusion
Ambient occlusion - это техника, применяемая для придания фотореалистичности в сцене с помощью более правдоподобного освещения находящихся в ней объектов, при котором учитывается наличие поблизости других предметов со своими характеристиками поглощения и отражения света.
Screen Space Ambient Occlusion (SSAO) является улучшенной версией Ambient Occlusion и тоже имитирует непрямое освещение и затенение. SSAO появился из-за того, что при современном уровне быстродействия видеокарт Ambient Occlusion не мог использоваться для просчета сцен в режиме реального времени. За более высокую производительность мы расплачиваемся более низким качеством картинки.
Есть ещё HBAO(+) и VXAO, разработанные Nvidia - если коротко, то это более качественный SSAO, требующий больше ресурсов видеокарты и дающий более тонкое и качественное затенение объектов.
Cel shading
Тип нефотореалистичного рендеринга, результатом которого является компьютерное изображение, в некоторой мере имитирующее результат рисования вручную.
Примерами игр с таким рендерингом являются Borderlands (1-2), XIII и т.д.
Depth of field
Глубина резкости – это расстояние между ближней и дальней границей пространства, в пределах которого все объекты будут в фокусе, в то время как остальная сцена окажется размытой.
Игрокам это придаёт эффект присутствия, что создаёт иллюзию присутствия.