Введение
Тип пространственного антиалиазирования Многообразный антиалиазирующий образец (MSAA) - это тип пространственного антиалиазирующего образа, метод, используемый в компьютерной графике для удаления ягги.
Multisample anti aliasing (MSAA) is a type of spatial anti aliasing, a technique used in computer graphics to remove jaggies.
Определение
Термин обычно относится к особому случаю суперпробоискания. Первоначальные реализации антиалиазирования полной сцены (FSAA) работали концептуально, просто воспроизводя сцену с более высоким разрешением, а затем уменьшая вывод на более низкое разрешение. Большинство современных графических процессоров способны к этой форме антиалиасинга, но это сильно облагает ресурсами, такими как текстура, пропускная способность и скорость заполнения. (Если программа сильно связана с TCL или CPU, суперсамплинг может быть использован без значительного снижения производительности.) Согласно спецификации OpenGL GL ARB, "мультиобразование" относится к конкретной оптимизации суперобразования. Спецификация диктует, что рендерер оценивает фрагментную программу один раз на пиксель и только "на самом деле" перепроверяет значения глубины и штемпеля. (Это не то же самое, что суперсамплинг, но в спецификации OpenGL 1.5 определение было обновлено, чтобы включить в него и реализацию полностью суперсамплинг.) В графической литературе в целом, "мульти-уборка" относится к любому особому случаю супер-уборки, когда некоторые компоненты конечного изображения не полностью супер-уборки. Нижеприведенные списки содержат конкретные ссылки на определение ARB, использующее множество выборки.
Описание
В суперобразе антиалиасинга, несколько мест отбираются в каждом пикселе, и каждый из этих образцов полностью отображается и объединяется с другими, чтобы получить пиксель, который в конечном итоге отображается. Это вычислительно дорого, потому что весь процесс рендеринга должен повторяться для каждого места образца. Это также неэффективно, так как псевдоизоляция обычно замечается только в некоторых частях изображения, таких как края, тогда как суперпробки выполняются для каждого отдельного пикселя. При многообразном антиалиасинге, если любое из многообразных мест в пикселе покрыто отображаемым треугольником, для этого треугольника необходимо выполнить вычисление затенения. Однако этот расчет необходимо выполнять только один раз для всего пикселя независимо от того, сколько позиций образца охвачено; результат расчета затенения просто применяется ко всем соответствующим многообразным позициям образца. В случае, когда только один треугольник покрывает каждое место множественного образца в пределах пикселя, выполняется только один вычисление затенения, и эти пиксели немного дороже (и результат не отличается), чем в не анти-алиазированном изображении. Это верно для середины треугольников, где псевдоним не является проблемой. (Определение краев может еще больше уменьшить это, явно ограничивая расчет MSAA пикселями, образцы которых включают в себя несколько треугольников или треугольников на нескольких глубинах.) В крайнем случае, когда каждое из многообразных мест выборки покрыто другим треугольником, для каждого места будет выполнен другой вычисление затенения, а затем результаты объединены, чтобы получить окончательный пиксель, и результат и расходы на вычисления такие же, как и в эквивалентном изображении сверхпроб. Расчет затенения - не единственная операция, которая должна быть выполнена на данном пикселе; многообразные реализации могут различно выбирать другие операции, такие как видимость на разных уровнях выборки.
Преимущества
Обычно шейдер пикселей необходимо оценивать только один раз на пиксель для каждого треугольника, охватывающего по крайней мере одну точку выборки. Крайности многоугольников (самый очевидный источник псевдоизоляции в 3D-графике) являются анти-алиазированными. Поскольку отбирается несколько субпикселей на пиксель, многоугольные детали, меньшие, чем один пиксель, которые могли бы быть пропущены без MSAA, могут быть захвачены и сделаны частью окончательного отображаемого изображения, если будет взято достаточное количество образцов.
Альфа-тестирование
Альфа-тестирование - это метод, распространенный в старых видеоиграх, используемый для визуализации полупрозрачных объектов путем отказа от пикселей, записываемых в буфер кадров. Если значение альфа прозрачного фрагмента (пикселя) ниже указанного порогового значения, то он будет отброшен. Поскольку это выполняется по пикселю за пикселем, изображение не получает преимуществ многообразного отбора проб (все многообразные образцы в пикселе отбрасываются на основе альфа-теста) для этих пикселей. Полученное изображение может содержать оттенки по краям прозрачных объектов или краев в текстурах, хотя качество изображения не будет хуже, чем без анти-алиазирования. Прозрачные объекты, моделируемые с использованием текстуры альфа-теста, также будут иметь псевдоним из-за альфа-тестирования. Этот эффект можно свести к минимуму, воспроизводя объекты с прозрачными текстурами несколько раз, хотя это приведет к высокому снижению производительности для сцен, содержащих много прозрачных объектов.
Алиасинг
Поскольку многообразное выборка вычисляет внутренние фрагменты многоугольников только один раз на пиксель, алиазинг и другие артефакты все еще будут видны внутри рендеринговых многоугольников, где выход фрагмента шейдера содержит высокочастотные компоненты.
Выступление
Хотя MSAA менее интенсивен в производительности, чем SSAA (суперуборочный процесс), в некоторых сценариях (сцены, состоящие из сложных фрагментов) MSAA может быть в несколько раз интенсивнее для данного кадра, чем методы после обработки антиалиазирования, такие как FXAA, SMAA и MLAA. Ранние методы в этой категории имеют тенденцию к меньшему воздействию на производительность, но страдают от проблем с точностью. Более поздние методы антиалиазирования, основанные на постпроцессировании, такие как временное антиалиазирование (TAA), которое уменьшает алиазирование путем объединения данных из ранее отображаемых кадров, видели обратную сторону этой тенденции, поскольку постпроцессирование AA становится более универсальным и более дорогим, чем MSAA, который не может антиалиазировать весь кадр в одиночку.
Точечная выборка
В маске с точечным выбором образцов бит покрытия для каждого мультиобразца устанавливается только в том случае, если мультиобразцы расположены внутри воспроизведенной примитивной. Образцы никогда не берутся из-за пределов первичного изображения, поэтому изображения, полученные с использованием точечного отбора образцов, будут геометрически правильными, но качество фильтрации может быть низким, потому что доля битов, установленных в маске покрытия пикселя, может быть не равна доле пикселя, который фактически покрыт рассматриваемым фрагментом.
Площадь выборки
Качество фильтрации можно улучшить с помощью масок с обработкой образцов по площади. При этом методе количество битов, установленных в маске покрытия для пикселя, должно быть пропорционально фактической площади покрытия фрагмента. Это приведет к тому, что некоторые биты покрытия будут установлены для мультиобразцов, которые на самом деле не находятся в пределах отображаемой примитивной, и могут вызвать псевдоним и другие артефакты.
Регулярная сетка
Регулярный шаблон выборки сетки, где многообразные места выборки образуют равномерно распределенную сетку по всему пикселю, легко реализовать и упрощает оценку атрибутов (т.е. настройка масок подпикселей, цвет и глубина выборки). Этот метод является вычислительно дорогим из-за большого количества образцов. Оптимизация краев плоха для выровненных краев экрана, но качество изображения хорошее, когда количество мультиобразов большое.
Регулярная сетка
Небольшой регулярный образец выборки сетки - это подмножество выборки, выбранных из регулярного образеца выборки сетки. Как и в случае с обычной сеткой, оценка атрибутов упрощена из-за регулярного расстояния. Метод менее затратен с точки зрения вычислений из-за меньшего количества образцов. Оптимизация краев хороша для выровненных краев экрана, а качество изображения хорошее для умеренного количества мультиобразов.
Стохастические образцы выборки
Стохастическая модель выборки - это случайное распределение мультиобразцов по пикселю. Неправильное расстояние между образцами усложняет оценку атрибутов. Метод является экономически эффективным из-за низкого количества образцов (по сравнению с обычными схемами сетки). Оптимизация краев с помощью этого метода, хотя она не является оптимальной для выровненных краев экрана. Качество изображения превосходно для умеренного количества образцов.
Качество
По сравнению с суперпробоизой, антиалиазинг с несколькими пробами может обеспечить аналогичное качество при более высокой производительности или лучшее качество при той же производительности. Дальнейшие улучшения могут быть достигнуты с помощью вращающихся масок подпикселей сетки. Дополнительная полоса пропускания, требуемая при многократном отборе проб, достаточно мала, если доступны Z и цветовая компрессия. Большинство современных графических процессоров поддерживают 2×, 4× и 8× образцы MSAA. Более высокие значения приводят к более высокому качеству, но медленнее.