Анизотропная фильтрация в играх что это

Графические секреты ..

Анизотропная фильтрация в играх что это

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

Существует несколько «видов» фильтрации:

Билинейная фильтрация — простейшая реализация алгоритма, вычислительной мощности требует не много, поэтому и результат плохой.

Трилинейная фильтрация — если сравнить с билинейной фильтрацией, трилинейная дает лучше результат, но все равно артефакты на изображении неизбежны.

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

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

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

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

Настройка анизотропной фильтрации сводится лишь к выбору коэффициента фильтрации (2x, 4x, 8x, 16x). Естественно, чем она выше, тем красивее и естественнее выглядят текстуры на экране монитора. Обычно, коэффициента 4x.

либо 8x более чем достаточно для удалении большей части искажений. Если установить коэффициент 16x возможно появление артефактов, правда на самых удаленных пикселях.

Стоит отметить что разница между 8x и 16x практически незаметна, ведь обработке подвергнута малая часть не фильтрованных пикселей.

Шейдеры

Шейдеры (Shader) – это крохотные программы, в функционал которых заложены определенные манипуляции с 3D-сценой, к прмиеру, изменение освещенность, налажывание текстур и другие эффекты.

Vertex Shader — вершинные шейдеры, они оперируют координатами.

Geometry Shader — геометрические шейдеры, их специфика позволяет работать не тольк с координатами, но и целыми геометрическими фигурами, правда колличество вершин у фигуры не может быть больше 6 (шести).

Pixel Shader — пиксельные шейдеры, работают, как понятно из названия, только с пикселями, и их параметрами.

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

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

Parallax mapping

Модифицированная версия техники bumpmapping — Parallax mapping используется для придания текстурам рельефности, причем о 3D речь не идет.

К примеру стена в типичной компьютерной игре будет выглядеть шероховатой, хотя на самом деле она будет абсолютно плоской.

Подобного эффекта добиваются за счет манипуляции текстурами благодаря применению Parallax mapping.

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

Использование метода Parallax mapping позволяет экономит вычислительные ресурсы графической системы.

Связанно это с тем, что использование 3D-структур для реализации подобных задач вызовет повышение вычислительных мощностей, а основные мощностя видеокарт пущены на обработку основных элементов графики.

Parallax mapping в основном используется для отрисовки каменных мостовых, стен, кирпичей и так далее.

Anti-Aliasing

Еще в те времена, когда о DirectX 8 никто и не подозревал, за сглаживание в играх отвечал метод SSAA (SuperSampling Anti-Aliasing), иное название FSAA ( Full-Scene Anti-Aliasing). Применение данного метода сглаживания приводило к ощутимой потере производительности, и как только на арену вышел DirectX 8 от него отказались. На замену SSAA пришел MSAA (Multisample Аnti-Аliasing). Выигрыш в производительности был на лицо, ему даже простили худшие результаты по сглаживанию, по прошествии некоторого времени появился более продвинутый метод — CSAA.

На сегодняшний день производительность графических адаптеров возросла в несколько раз, в связи с этим гиганты индустрии AMD и NVIDIA вновь встроили в свои ускорители поддержку технологии SSAA, но, использование в современных играх нежелательна, так как показатель количества кадров в секунду будет очень низким. SSAA может быть эффективной лишь в старых проектах, и со скромными настройками отображения. Если в картах AMD реализована поддержка SSAA только для игр поддерживающих DirectX 9, то в NVIDIA алгоритм SSAA функционирует также в режимах DirectX 10 и DirectX 11.

Сглаживание работает на достаточно простом алгоритме, перед выводом кадра на экран монитора служебная информация рассчитывается не в родном разрешении, а в кратном двум.

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

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

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

Тесселяция

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

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

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

Да и применить тесселяцию можно к любому объекту, в то время как Parallax mapping применим только к определенному типу.

Вертикальная синхронизация

V-Sync – это синхронизация кадров игры с частотой вертикальной развертки монитора.

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

Важно, что очередной кадр (если он уже готов) также появится не позже и не раньше, чем закончится вывод предыдущего и начнется следующего.

Если частота обновления монитора составляет 60 Гц, и видеокарта успевает просчитывать 3D-сцену как минимум с таким же количеством кадров, то каждое обновление монитора будет отображать новый кадр. Другими словами, с интервалом 16,66 мс пользователь будет видеть полное обновление игровой сцены на экране.

Следует понимать, что при включенной вертикальной синхронизации fps в игре не может превышать частоту вертикальной развертки монитора.

Если же число кадров ниже этого значения (в нашем случае меньше, чем 60 Гц), то во избежание потерь производительности необходимо активировать тройную буферизацию, при которой кадры просчитываются заранее и хранятся в трех раздельных буферах, что позволяет чаще отправлять их на экран.

Читайте также  Что значит гибернация на ноутбуке

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

Post-processing

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

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

Изолированно к отдельным 3D-объектам такие приемы не могут быть применены без появления в кадре артефактов.

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

Bloom

Bloom нередко применяется совместно с HDR, а еще у него есть довольно близкий родственник – Glow, именно поэтому эти три техники часто путают.

Bloom симулирует эффект, который можно наблюдать при съемке очень ярких сцен обычными камерами.

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

При использовании Bloom на границах предметов могут появляться дополнительные артефакты в виде цветных линий.

Motion Blur

Motion Blur – эффект смазывания изображения при быстром перемещении камеры. Может быть удачно применен, когда сцене следует придать больше динамики и скорости, поэтому особенно востребован в гоночных играх.

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

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

Film Grain

Зернистость – артефакт, возникающий в аналоговом ТВ при плохом сигнале, на старых магнитных видеокассетах или фотографиях (в частности, цифровых изображениях, сделанных при недостаточном освещении).

Игроки часто отключают данный эффект, поскольку он в определенной мере портит картинку, а не улучшает ее. Чтобы понять это, можно запустить Mass Effect в каждом из режимов.

В некоторых «ужастиках», например Silent Hill, шум на экране, наоборот, добавляет атмосферности.

High dynamic range (HDR)

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

HDR добавляет больше градаций в кадр и позволяет детализировать сцену. Для его применения обычно приходится работать с более широким диапазоном оттенков, чем может обеспечить стандартная 24-битовая точность.

Предварительные просчеты происходят в повышенной точности (64 или 96 бит), и лишь на финальной стадии изображение подгоняется под 24 бита.

SSAO

Ambient occlusion – техника, применяемая для придания сцене фотореалистичности за счет создания более правдоподобного освещения находящихся в ней объектов, при котором учитывается наличие поблизости других предметов со своими характеристиками поглощения и отражения света.

Screen Space Ambient Occlusion является модифицированной версией Ambient Occlusion и тоже имитирует непрямое освещение и затенение.

Появление SSAO было обусловлено тем, что при современном уровне быстродействия GPU Ambient Occlusion не мог использоваться для просчета сцен в режиме реального времени.

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

SSAO работает по упрощенной схеме, но у него есть множество преимуществ: метод не зависит от сложности сцены, не использует оперативную память, может функционировать в динамичных сценах, не требует предварительной обработки кадра и нагружает только графический адаптер, не потребляя ресурсов CPU.

Cel shading

Игры с эффектом Cel shading начали делать с 2000 г., причем в первую очередь они появились на консолях.

На ПК по-настоящему популярной данная техника стала лишь через пару лет, после выхода нашумевшего шутера XIII.

С помощью Cel shading каждый кадр практически превращается в рисунок, сделанный от руки, или фрагмент из детского мультика.

В похожем стиле создают комиксы, поэтому прием часто используют именно в играх, имеющих к ним отношение. Из последних известных релизов можно назвать шутер Borderlands, где Cel shading заметен невооруженным глазом.

Особенностями технологии является применение ограниченного набора цветов, а также отсутствие плавных градиентов. Название эффекта происходит от слова Cel (Celluloid), т. е. прозрачного материала (пленки), на котором рисуют анимационные фильмы.

Depth of field

Глубина резкости – это расстояние между ближней и дальней границей пространства, в пределах которого все объекты будут в фокусе, в то время как остальная сцена окажется размытой.

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

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

Именно такую степень размытия часто и пытаются симулировать в 3D-сценах.

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

Источник: http://1001file.ru/article/hard/graphic-secrets.html

Гайд. За что отвечают настройки графики в играх и как они влияют на 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, что приведет к неслабым таким лагам.

Читайте также  Todos apk что это

Лучший способ бороться с разрывами изображения на сегодняшний день — купить монитор с поддержкой G-Sync или FreeSync и соответствующую видеокарту Nvidia или AMD. Ни разрывов, ни инпут-лага.

Влияние на производительность

В общем и целом — никакого.

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

Здесь и далее — слева изображение с отключенной графической опцией (или установленной на низком значении), справа — с включенной (или установленной на максимальном значении).

Технологий сглаживания несколько, вот основные:

  • Суперсэмплинг (SSAA) — самое эффективное сглаживание, но вместе с тем — жутко требовательное к ресурсам. Работает оно просто: ваша видеокарта рендерит картинку в гораздо более высоком разрешении, чем задано в настройках, а потом «ужимает» его обратно. Чем выше это значение, тем лучше сглаживание и тем выше нагрузка на компьютер. Грубо говоря, при значении SSAA 4X ваш ПК будет вынужден за одно и то же время обсчитать одну и ту же сцену четыре раза, а не один.
  • MSAA — мультисемплинг. По эффективности схож с SSAA, но работает совершенно по-другому (объяснить его простыми словами довольно сложно, но это, пожалуй, и не нужно), а потому менее требователен к ресурсам. Если компьютер позволяет, именно это сглаживание стоит пробовать включать в первую очередь. Картинка лишь едва-едва потеряет в четкости, зато лесенки почти исчезнут.
  • FXAA (Быстрое сглаживание) — более простой способ сглаживания. На всю картинку попросту накидывается размытие. Вообще не влияет на производительность, но добавляет в изображение очень много «мыла». В большинстве случаев уж лучше терпеть «лесенки», но тут кому как.
  • TXAA («Временное сглаживание») / MLAA («Морфологическое сглаживание») — то же самое, что MSAA, но еще эффективнее. Первый тип поддерживается видеокартами Nvidia, второй — AMD. Если в игре есть один из этих вариантов, лучше всего использовать именно его. Почти идеальный баланс между эффективностью и производительностью.

Влияние на прозводительность

Ничтожное.

Источник: https://kanobu.ru/articles/gajd-zachto-otvechayut-nastrojki-grafiki-vigrah-ikak-oni-vliyayut-nafps-372766/

Анизотропная фильтрация

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

Разрешение определяется количеством пикселей. Ваша 3D плата должна определить цвет каждого из этих пикселей.

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

По сути, эти тексели являются пикселями 2D изображения, которые наложены на 3D поверхность. Главный вопрос таков: какой тексель (или какие тексели) определяет цвет пикселя на экране?

Представьте себе следующую проблему: предположим, что ваш экран это плита с большим количеством отверстий (давайте исходить из предположения, что пиксели имеют круглую форму). Каждое отверстие это пиксель.

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

Если полигон расположен параллельно экрану (т.е. нашей воображаемой плите с отверстиями), тогда световой луч попав на него образует круглое световой пятно (см. рис. 1).

Теперь, вновь подключив воображение, заставим полигон вращаться вокруг своей оси и самые простые познания подскажут вам, что форма светового пятна изменится, и вместо круглой станет эллиптической (см. рис. 2 и 3).

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

Посмотреть на различные формы светового пятна можно на следующих примерах:

Рис. 1 Рис. 2

Рис. 3

1. Point Sampling

Point Sampling — поточечная выборка. Это самый простой способ определения цвета пикселя на основе текстурного изображения.

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

Вы так же не принимаете во внимание тот факт, что форма светового пятна может измениться.

Главный преимущество такого метода фильтрации — это низкие требования к ширине полосы пропускания памяти, т.к. для определения цвета пикселя вам нужно выбрать всего лишь один тексель из текстурной памяти.

Главный недостаток — это тот факт, что когда полигон расположен ближе к экрану (или точке наблюдения) количество пикселей будет больше, чем количество текселей, следствием чего станет блочность и общее ухудшение качества изображений.

Однако, главная цель применения фильтрации это не улучшение качества при сокращении расстояния от точки наблюдения до полигона, а избавление от эффекта неправильного расчета глубины сцены (depth aliasing).

2. Bi-Linear Filtering

Bi-Linear Filtering — билинейная фильтрация. Состоит в использовании интерполяционной техники.

Иными словами, применительно к нашему примеру, для определения текселей, которые должны быть задействованы для интерполяции, используется основная форма светового пятна — круг. По существу, круг аппроксимируется 4 текселями.

Этот способ фильтрации представляет собой существенно лучше поточечной выборки (point sampling), так как отчасти принимается во внимание форма светового пятна и используется интерполяция.

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

Главный недостаток билинейной фильтрации в том, что аппроксимация выполняется корректно только для полигонов, которые расположены параллельно экрану или точке наблюдения.

Если полигон развернут под углом (а это в 99% случаев), значит вы используете неправильную аппроксимацию. Неправильность заключается в том, что вы используете аппроксимацию круга, в то время, как должны аппроксимировать эллипс.

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

3. Tri-Linear filtering

Tri-Linear filtering — трилинейная фильтрация, представляет собой симбиоз mip-текстурирования и билинейной фильтрации. Фактически, вы производите билинейную фильтрацию на двух mip уровнях, что в результате дает вам 2 текселя, по одному для каждого mip уровня.

Цвет пикселя, который должен быть выведен на экран, определяется в результате интерполяции по цветам двух mip-текстур.

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

Требования к ширине полосы пропускания памяти удваиваются, по сравнению с билинейной фильтрацией, так как вам необходимо считать 8 текселей из текстурной памяти.

Использование мипмеппинга обеспечивает лучшую аппроксимацию (используется большее число текселей, расположенных в световом пятне) по всем текселям в световом пятне, благодаря использованию заранее рассчитанных mip-текстур.

4. Anisotropic filtering

Anisotropic filtering — анизотропная фильтрация. Итак, чтобы получить действительно хорошие результаты, вы должны помнить, что все тексели в световом пятне определяют цвет пикселя.

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

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

На самом деле вы осуществляете сверх меры фильтрацию в одном направлении, и совершенно недостаточно фильтруете во всех остальных.

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

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

Существуют техники фильтрации, которые используют от 16 до 32 текселей из текстуры для определения цвета пикселя.

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

В системах визуализации, использующих тайлы1 существенно экономятся ресурсы полосы пропускания памяти, что позволяет использовать анизотропную фильтрацию.

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

1 Tile (тайл) — плитка или фрагмент изображения.

Фактически тайл представляет собой участок изображения, обычно с размером 32 на 32 пикселя; по этим участкам осуществляется сортировка с целью определения, какие полигоны, попадающий в этот тайл являются видимыми. Тайловая техника реализована в чипсетах VideoLogic/NEC.

Дополнительную информацию по данной теме можно прочитать здесь и здесь.

Помощь в подготовке материала оказал Kristof Beets (PowerVR Power)

Источник: https://www.ixbt.com/video/anisotropic.html

Что такое анизотропная фильтрация в играх

Когда-то компьютерная игра представляла собой две белые чёрточки по краям чёрного экрана, между которыми прыгал белый квадрат. Квадрат символизировал собой мяч, а чёрточки – ракетки, а игра называлась «Понг».

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

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

Но с ростом качества изображения росла и нагрузка на вычислительную технику.

Если раньше менять компьютер на более новый ради компьютерной игры казалось глупой идеей, со временем это стало нормой.

Для игр пришлось разрабатывать и выпускать отдельные процессоры, обрабатывающие исключительно графику – видеокарты.

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

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

Дело в том, что технологии, используемые в 3D-графике, весьма тяжелы для вычислительных мощностей, а некоторые даже были невозможны до недавнего времени. Одной из таких технологий является анизотропная фильтрация.

Текстурирование

В 3D-сцене все объекты являются совокупностью каркасов, абстрактных математических фигур. Как сказал С. Цыпцын, автор книги «Понимая Maya», 3D-сцена это всего лишь мешок с цифрами. Если показать эту сцену человеку без обработки, он увидит только путаницу пересекающихся линий.

Чтобы из абстрактных фигур сформировались объекты, которые глаз может принять, например, за стул, на эти фигуры натягивается текстура. Текстура – это «расшивка», единая двухмерная картинка, равномерно наложенная на фигуру.

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

Если текстуру распечатать, то из неё при определённом старании можно свернуть и склеить тот самый объект, который нам нужен в сцене. Прямо как детская игрушка из уроков рукоделия.

Казалось бы, для красивой графики достаточно просто фотографировать реальный стул и накладывать эти фотографии в качестве текстур.

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

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

Минимальной единицей текстуры является тексел – это то же самое, что и пиксель, только конкретно на текстуре. Если в игре подойти в упор к стене, на ней можно увидеть мелкие квадратики и неровности текстуры – это и есть текселы.

Антиалиасинг

Переделать красивый и гладкий мир живой природы в дискретный, цифровой вариант 3D-сцены – задача нелегкая. В частности, все гладкие и прямые линии так и норовят разбиться в характерные «ступеньки» дискретного вычисления.

Особенно сильно это бьёт по текстурам, ведь именно на них линии составляют форму и вид объекта. При низких ресурсах компьютера и настройках графики спинка стула так и норовит превратиться в пилу.

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

Анизотропная фильтрация

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

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

Под основную текстуру накладывается текстура другого разрешения – того разрешения, которое соответствует поперечному разрешению текущей картинки в кадре.

А для расчёта промежуточных значений сглаживания берутся тексели (те самые текстурные пиксели) по линии вдоль текущей картинки.

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

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

Источник: https://webglobus.ru/chto-takoe-anizotropnaya-filtratsiya-v-igrah/

Понравилась статья? Поделить с друзьями: