TAA, SMAA, FXAA, MSAA или SSAA, который вы должны выбрать. Четыре варианта, и это просто сглаживание, о котором мы здесь говорим. Современные компьютерные игры включают множество графических настроек на выбор и оптимизируют производительность. Есть Окружающая Окклюзия, Отражения пространства экрана, Тени, Фильтрация текстур, Постобработка и многое другое. Что делают все эти графические настройки и, что более важно, как они влияют на визуальную точность в ваших любимых играх? Давайте разберемся!
Анти- Aliasing: SMAA против ТАА против FXAA против MSAA
Давайте начнем с сглаживания. Это одна из основных настроек графики, которую вы найдете в играх. У вас есть традиционные MSAA, SSAA, FXAA и более новые SMAA и временные методы на основе шейдеров (TAA), которые стали нормой. Итак, что же делает сглаживание? Короче говоря, он придает изображению более чистый вид, удаляя неровные или неровные края вокруг объектов.
Нет АА
FXAA
Вот пример того, как FXAA (быстрое приближенное сглаживание) улучшает качество изображения, уменьшая неровности. Увеличьте изображения и посмотрите, как второй из них заметно плавнее. Вот еще одно сравнение того, как АА влияет на вашу игру. Здесь вы можете увидеть SMAA в действии:
Нет АА
МАЛЕНЬКИЙ
Различия невелики, но существуют по всему изображению. Проверьте электрический столб и проводку. Они теряют зубы по краям, когда SMAA включен. Овсянки и растительность также получают одинаковое лечение. Однако, в отличие от FXAA, SMAA не слишком сильна. Это избавляет от псевдонимов, не размывая детали текстуры.
Существует два основных типа методов сглаживания:
Традиционное масштабирование: в основном это MSAA (Multi-Sampling AA) и SSAA (Super Sampling AA), которые были популярны в прошлом поколении и по уважительной причине. Они обеспечивают наилучшее качество изображения (в широком смысле), но снижение производительности является серьезным. Они работают, визуализируя изображение с более высоким разрешением, а затем уменьшая его до исходного разрешения. По сути, это делает все изображение более детальным и четким, уменьшая шероховатость краев в процессе, но не удаляя их полностью. Вот пример:
Нет АА
Super Sampling визуализирует все изображение с более высоким разрешением, а затем уменьшает его до целевого разрешения. Точное разрешение рендеринга зависит от разработчика. Изображение может быть уменьшено по оси х и у или по одному из них.
MSAA или мультисэмплинг использует алгоритмы обнаружения контуров для обнаружения алиасинга (на основе различий в контрасте), а затем визуализирует только те части с более высоким разрешением. Еще раз, количество выборки варьируется от 2x до 8x. В большинстве случаев SSAA и MSAA пропускают прозрачные текстуры, поскольку большинство фильтров обнаружения краев не распознают их. Кроме того, они имеют тенденцию уменьшать интенсивность алиасинга, а не полностью устраняют его.
2x MSAA
На основе шейдеров: методы AA на основе шейдеров более эффективны и не сильно влияют на производительность. Они работают, применяя небольшое размытие к краям, делая изображение более гладким, но в то же время уменьшая резкость. FXAA является хорошим примером того, как AA на основе шейдеров избавляется от алиасинга, но снижает уровень детализации, применяя фильтр размытия.
Более новые методы, такие как SMAA, значительно уменьшают интенсивность размытия, а также поглощают большую часть неровностей. Однако он имеет тот же недостаток, что и MSAA: он не работает с прозрачными текстурами. Последняя и самая популярная форма АА — временное сглаживание. TAA фокусируется на устранении временного наложения или мерцания. Это наиболее очевидно в движении. Временное алиасинг возникает, когда частота кадров слишком низкая по сравнению со скоростью перехода объектов в сцене. Это заставляет границы объектов появляться в движении. Вот сравнение ТАА против АА:
Нет АА
TAA работает, сравнивая соседние кадры (по времени) и смешивая их, чтобы создать более чистое изображение в движении.
Текущий кадр визуализируется вместе с геометрией и штриховкой, после чего он повторно проецируется на предыдущее изображение с использованием смещений дрожания и векторов движения. После этого используется фильтр выпрямления для предотвращения появления двоений, и применяются эффекты постобработки, тем самым завершая кадр. Точно так же этот кадр используется для восстановления (перепроецированием) следующего последовательного кадра, и процесс продолжается.
ТАА (справа)
ТАА
Временное масштабирование использует аналогичный метод для масштабирования изображений с низким разрешением. Основное отличие состоит в том, что в отличие от TAA чередующиеся пиксели визуализируются в последовательных кадрах и заполняют промежутки с использованием интерполяции и выборок из соседних кадров.
Вот сравнение FXAA с TAA, использованным на том же изображении:
ТАА
FXAA
Основные преимущества TAA над FXAA более выражены в движении. «Зубы» на границах объектов кажутся движущимися, когда вы находитесь в движении в игре. TAA работает, чтобы сгладить эти артефакты, в то время как FXAA просто применяет «фильтр вазелина», который, хотя и эффективен, создает изогнутые линии, которые прыгают вокруг, когда есть переход в сцене.
Окружающая Окклюзия
В играх есть два вида теней. «Тени» и «Окклюзия окружающей среды». Последнее относится к окружающим теням, которые существуют в расщелинах, краях и на поверхностях, скрытых от солнца. Объект литья и тень здесь часто пересекаются. Основным методом эмбиентной окклюзии является Окклюзия экранного пространства и улучшенный вариант горизонтальной окклюзии окружающей среды.
Существуют также более новые VXAO и AO с трассировкой лучей, но они все еще довольно редки, поэтому мы не будем беспокоиться. Если вы хотите узнать о них, просто помните, что вокселы (трехмерные треугольники) составляют основу VXAO, в то время как для последнего используется трассировка лучей.
В АО
SSAO
SSAO и HBAO — грубые хаки, которые вычисляют (используя интеграл), куда свет проникнет и какие области будут затенены. Это скорее приближение, чем фактическая вещь.
Уровень детализации (LOD)
Уровень детализации определяет сложность объекта и игровое расстояние (от камеры), после которого объекты теряют детализацию (или становятся размытыми). Для простоты это часто называют в играх качеством окружающей среды, деталями местности, игровыми деталями, качеством рендеринга или каким-либо другим связанным термином.
Низкий LOD
Высокий ЛОД
Это влияет на качество сетки объектов, которое на самом деле относится к числу полигонов, отображаемых на объект, и, в свою очередь, вызовы отрисовки, которые ЦП должен будет отправить. В результате игра с богатым уровнем детализации потребует мощного процессора, а также способного графического процессора.
Детализация текстур
Детали текстуры похожи на LOD за исключением того, что здесь не происходит рендеринг. Это предварительно запеченные текстуры, которые загружаются в VRAM вашей видеокарты и действуют как скины игровых объектов. Чем детальнее текстуры, тем реалистичнее они будут выглядеть и, соответственно, потреблять больше памяти.
Низкие Текстуры
Высокие Текстуры
Фильтрация текстур
Фильтрация текстур — это одна из тех настроек, которая делает вашу игру более четкой. Ну, а чем он отличается от обычного фильтра для заточки?
трехлинейный
16x AF
Фильтрация текстур просто гарантирует, что мип-карты текстур правильно видны с игровой камеры. Традиционно, мипмапы меньше исходной текстуры в 2 раза, и есть точки (тексели), где могут сходиться несколько мипмапов. Таким образом, они должны быть отфильтрованы, чтобы избежать размытия и других артефактов.
Билинейная фильтрация, самая простая форма фильтрации текстур, использует следующий подход для расчета цвета текселя: он берет четыре образца текселя из приблизительного положения текселя, как указано игровым движком, и вычисляет его среднее значение, которое затем используется в качестве окончательного стоимость. Однако в билинейной фильтрации используются только сэмплы или тексели из мипакарт, идентифицированных игровым движком, и если в какой-то момент с текстурами с искаженным прогнозом используются два разных мипакарты, наблюдаются сдвиги в четкости текстур.
Трилинейная фильтрация улучшает билинейную фильтрацию за счет непрерывной выборки и интерполяции (усреднения) текселей из двух ближайших размеров мип-карт для целевого текселя, но, как и BF, этот метод предполагает, что текстура отображается в виде квадрата с точки зрения игрока, и терпит убытки по качеству, если смотреть под углом (особенно перпендикулярно экрану).
Это происходит из-за того, что тексель покрывает глубину (область вдоль оси, перпендикулярной экрану) длиннее и ширину, более узкую, чем образцы, извлеченные из мип-карт, что приводит к размытию из-за недостаточной и избыточной выборки соответственно.
Чтобы решить эту проблему, анизотропная фильтрация масштабирует либо высоту, либо ширину мип-карты по отношению к углу текстуры относительно экрана. Соотношение зависит от указанного максимального значения выборки, после чего берутся соответствующие образцы. AF может функционировать с уровнями анизотропии от 1 (без масштабирования) до 16, определяя максимальную степень, с которой может масштабироваться мип-карта, но AF обычно предлагается пользователю в двух степенях: 2x, 4x, 8x и 16x.
Разница между этими настройками заключается в максимальном угле, по которому AF будет фильтровать текстуру. Например, 4x будет фильтровать текстуры под углами, вдвое более крутыми, чем 2x, но все равно будет применять стандартную 2x фильтрацию к текстурам в диапазоне 2x для оптимизации производительности.
Объемное освещение
Помните богиня NVIDIA? Да, это в основном то, что такое объемное освещение. Team green использует тесселяционные God-Ray, которые более требовательны к производительности, но и выглядят лучше. Традиционное объемное освещение просто является демонстрацией того, как солнечные лучи (или любые лучи) появляются и ведут себя в игровом мире.
Отражения пространства экрана
Нет SR (обратите внимание, машина отражение отсутствует)
SR On
Отражения на экране — это метод визуализации динамических отражений в игре. Это довольно сложно и не зря. SSR в основном перерисовывает сцену на прозрачных поверхностях. Тем не менее, он делает это только для объектов, видимых на экране. Если есть другие объекты, которые присутствуют в том же месте, но не видны на экране, они будут отбракованы. Еще одна популярная техника рефекции — это кубирование. При этом текстуры предварительно запекаются на разных сторонах куба и сохраняются в виде шести квадратных текстур или разворачиваются в шесть квадратных областей одной текстуры.
Мозаика
Тесселяция — это метод на основе DX11, используемый для повышения уровня детализации сцены без увеличения размера текстуры. Это делается путем разделения полигонов на более мелкие, чтобы улучшить сложность и детализацию сетки.
от
Тесселяция — это метод, позволяющий воспроизводить примитивы (треугольники, линии, точки и т. Д.) В 3D-приложении. Это делается путем многократного разделения текущей геометрии на более мелкую сетку.
Это позволяет загружать относительно грубую сетку, динамически генерировать больше вершин и треугольников, а затем превращать ее в более мелкую сетку.
Постобработка
Постобработка обычно относится к эффектам, которые реализованы на последнем этапе рендеринга, после того, как все другие эффекты, такие как тесселяция, мультисэмплинг, отражения и тени, сделаны. Он включает в себя эффекты на основе шейдеров, такие как глубина резкости, размытие движения, окклюзия окружающей среды, а иногда и FXAA или SMAA.