stringtranslate.com

Мультисэмпл сглаживание

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

Определение

Термин обычно относится к особому случаю суперсэмплинга . Первоначальные реализации полноэкранного сглаживания ( FSAA ) концептуально работали, просто визуализируя сцену с более высоким разрешением, а затем понижая разрешение до вывода с более низким разрешением. Большинство современных графических процессоров способны на эту форму сглаживания, но она сильно нагружает ресурсы, такие как текстура, полоса пропускания и скорость заполнения . (Если программа сильно ограничена TCL или CPU , суперсэмплирование можно использовать без особого снижения производительности.)

Согласно спецификации OpenGL GL_ARB_multisample, [1] «мультисэмплинг» относится к определенной оптимизации суперсэмплинга. Спецификация предписывает, чтобы рендерер оценивал фрагментную программу один раз на пиксель и только «действительно» суперсэмплинг значений глубины и трафарета . (Это не то же самое, что суперсэмплинг, но, согласно спецификации OpenGL 1.5, [2] определение было обновлено, чтобы включить также и полные реализации суперсэмплинга.)

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

Описание

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

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

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

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

Преимущества

Недостатки

Альфа-тестирование

Альфа-тестирование — это метод, распространенный в старых видеоиграх, используемый для рендеринга полупрозрачных объектов путем отклонения пикселей от записи в буфер кадра. [4] Если альфа-значение полупрозрачного фрагмента (пикселя) ниже указанного порогового значения, он будет отброшен. Поскольку это выполняется попиксельно, изображение не получает преимуществ мультисэмплинга (все мультисэмплы в пикселе отбрасываются на основе альфа-теста) для этих пикселей. Полученное изображение может содержать сглаживание вдоль краев прозрачных объектов или краев внутри текстур, хотя качество изображения будет не хуже, чем без сглаживания. [5] Полупрозрачные объекты, смоделированные с использованием текстур альфа-теста, также будут сглаживаться из-за альфа-тестирования. Этот эффект можно минимизировать, рендеря объекты с прозрачными текстурами несколько раз, хотя это приведет к значительному снижению производительности для сцен, содержащих много прозрачных объектов. [6]

Алиасинг

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

Производительность

Хотя MSAA менее производительен, чем SSAA (суперсэмплинг), в определенных сценариях (сцены с большим количеством сложных фрагментов) возможно, что MSAA будет в несколько раз более интенсивным для данного кадра, чем методы постобработки сглаживания, такие как FXAA , SMAA и MLAA . Ранние методы в этой категории, как правило, оказывают меньшее влияние на производительность, но страдают от проблем с точностью. [7] Более поздние методы постобработки сглаживания, такие как временное сглаживание (TAA), которое уменьшает сглаживание путем объединения данных из ранее отрисованных кадров, увидели обратную тенденцию, поскольку постобработка AA становится и более универсальной, и более дорогой, чем MSAA, которая не может сглаживать целый кадр в одиночку.

Методы отбора проб

Точечная выборка

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

Зона отбора проб

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

Образцы шаблонов

Регулярная сетка

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

Редкая регулярная сетка

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

Стохастические образцы моделей

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

Качество

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

Большинство современных графических процессоров поддерживают выборки MSAA 2×, 4× и 8×. Более высокие значения дают лучшее качество, но медленнее.

Смотрите также

Ссылки

  1. ^ «Дополнения к главе 3 спецификации 1.2.1».
  2. ^ "Спецификация OpenGL 1.5" (PDF) .
  3. ^ "Значение сглаживания: для чего оно используется?". ARVI VR. 2018-09-14 . Получено 2018-09-14 .
  4. ^ "Синтаксис ShaderLab: альфа-тестирование". Unity3d.com. 2008-04-27 . Получено 2012-07-31 .
  5. ^ "Мультисэмплинговое сглаживание: крупный план". Alt.3dcenter.org . Получено 2012-07-31 .
  6. ^ "Визуальное сравнение различных режимов сглаживания". Nhancer.com. Архивировано из оригинала 28.01.2013.
  7. ^ Мэтт Петтинео (2012-10-25). "Краткий обзор MSAA" . Получено 2016-11-24 .
  8. ^ "Мультисэмплинговое сглаживание: крупный план". Alt.3dcenter.org . Получено 2012-07-31 .