Мультисэмпловое сглаживание
этой статьи Начальный раздел может быть слишком коротким, чтобы адекватно суммировать ключевые моменты . ( июнь 2017 г. ) |
Мультисэмпловое сглаживание ( MSAA ) — это тип пространственного сглаживания , метод, используемый в компьютерной графике для удаления неровностей .
Определение [ править ]
Этот термин обычно относится к особому случаю суперсэмплинга . Первоначальные реализации полносценного сглаживания ( FSAA ) концептуально работали путем простого рендеринга сцены с более высоким разрешением, а затем понижения разрешения до выходного сигнала с более низким разрешением. Большинство современных графических процессоров поддерживают такую форму сглаживания, но она сильно нагружает такие ресурсы, как текстуры, пропускная способность и скорость заполнения . (Если программа сильно привязана к TCL или процессору , суперсэмплинг можно использовать без особого снижения производительности.)
Согласно спецификации OpenGL GL_ARB_multisample, [1] «Мультидисэмплинг» относится к конкретной оптимизации суперсэмплинга. Спецификация предписывает, чтобы средство рендеринга оценивало программу фрагмента один раз для каждого пикселя и только «по-настоящему» выполняло суперсэмплирование значений глубины и трафарета . (Это не то же самое, что суперсэмплинг, но согласно спецификации OpenGL 1.5 [2] определение было обновлено и теперь включает в себя полную реализацию суперсэмплинга.)
В литературе по графике в целом термин «мультисэмплинг» относится к любому особому случаю суперсэмплинга, когда некоторые компоненты конечного изображения не подвергаются полной суперсэмплингу. Списки ниже относятся конкретно к определению ARB_multisample.
Описание [ править ]
При сглаживании суперсэмпла в каждом пикселе производится выборка из нескольких мест, и каждая из этих выборок [3] полностью визуализируется и объединяется с другими для создания пикселя, который в конечном итоге отображается. Это требует больших вычислительных затрат, поскольку весь процесс рендеринга необходимо повторять для каждого местоположения образца. Это также неэффективно, поскольку сглаживание обычно заметно только в некоторых частях изображения, например по краям, тогда как суперсэмплинг выполняется для каждого отдельного пикселя.
При мультисэмпловом сглаживании, если какое-либо из положений мультисэмпла в пикселе покрыто визуализируемым треугольником, для этого треугольника необходимо выполнить вычисление затенения. Однако этот расчет необходимо выполнить только один раз для всего пикселя, независимо от того, сколько позиций выборки охвачено; результат расчета затенения просто применяется ко всем соответствующим местоположениям нескольких образцов.
В случае, когда только один треугольник покрывает каждую позицию с несколькими выборками в пикселе, выполняется только одно вычисление затенения, и эти пиксели немного дороже (и результат ничем не отличается), чем в несглаженном изображении. Это справедливо для середины треугольников, где сглаживание не является проблемой. ( Обнаружение краев может еще больше уменьшить это, явно ограничивая вычисление MSAA пикселями, образцы которых включают несколько треугольников или треугольников на разной глубине.) В крайнем случае, когда каждое из мест с несколькими выборками покрыто другим треугольником, другое вычисление затенения будет выполняться для каждого местоположения, а затем результаты объединяются для получения окончательного пикселя, а результат и вычислительные затраты такие же, как и в эквивалентном изображении с суперсэмплированием.
Расчет затенения — не единственная операция, которую необходимо выполнить с данным пикселем; Реализации множественной выборки могут по-разному осуществлять выборку других операций, таких как видимость, на разных уровнях выборки.
Преимущества [ править ]
- Пиксельный шейдер обычно необходимо оценивать только один раз для каждого пикселя для каждого треугольника, охватывающего хотя бы одну точку выборки.
- Края полигонов (наиболее очевидный источник сглаживания в 3D-графике) сглажены.
- Поскольку для каждого пикселя выполняется выборка нескольких субпикселей, полигональные детали размером менее одного пикселя, которые могли быть пропущены без MSAA, могут быть захвачены и включены в окончательное визуализированное изображение, если взято достаточное количество образцов.
Недостатки [ править ]
Альфа-тестирование [ править ]
Альфа-тестирование — это метод, распространенный в старых видеоиграх, который использовался для рендеринга полупрозрачных объектов путем отклонения пикселей от записи в буфер кадра. [4] Если значение альфа полупрозрачного фрагмента (пикселя) ниже указанного порога, он будет отброшен. Поскольку это выполняется попиксельно, изображение не получает преимуществ множественной выборки (все мультивыборки в пикселе отбрасываются на основе альфа-теста) для этих пикселей. Полученное изображение может содержать алиасинг по краям прозрачных объектов или краям внутри текстур, однако качество изображения будет не хуже, чем было бы без всякого сглаживания. [5] Полупрозрачные объекты, смоделированные с использованием текстур альфа-тестирования, также будут иметь псевдонимы из-за альфа-тестирования. Этот эффект можно минимизировать, многократно визуализируя объекты с прозрачными текстурами, хотя это приведет к значительному снижению производительности для сцен, содержащих много прозрачных объектов. [6]
Псевдонимы [ править ]
Поскольку множественная выборка вычисляет внутренние фрагменты полигона только один раз для каждого пикселя, псевдонимы и другие артефакты все равно будут видны внутри визуализированных полигонов, где выходные данные фрагментного шейдера содержат высокочастотные компоненты.
Производительность [ править ]
Хотя MSAA требует меньше производительности, чем SSAA (суперсэмплинг), в определенных сценариях (сцены, насыщенные сложными фрагментами) MSAA может быть в несколько раз более интенсивным для данного кадра, чем методы постобработки сглаживания, такие как FXAA , SMAA и MLAA. . Ранние методы в этой категории имеют тенденцию к снижению производительности, но страдают от проблем с точностью. [7] Более поздние методы сглаживания на основе постобработки, такие как временное сглаживание (TAA), которое уменьшает сглаживание за счет объединения данных из ранее визуализированных кадров, привели к изменению этой тенденции, поскольку постобработка AA становится более универсальной и более удобной. дороже, чем MSAA, который не может сглаживать весь кадр отдельно.
Методы выборки [ править ]
Выборка точек [ править ]
В маске с точечной выборкой бит покрытия для каждой мультисэмпла устанавливается только в том случае, если мультисэмпл расположен внутри визуализированного примитива. Выборки никогда не берутся за пределами отображаемого примитива, поэтому изображения, созданные с использованием точечной выборки, будут геометрически правильными, но качество фильтрации может быть низким, поскольку доля битов, установленных в маске покрытия пикселя, может не равняться доле пикселя, который фактически покрывается рассматриваемым фрагментом.
Выборка территории [ править ]
Качество фильтрации можно улучшить, используя маски с выборкой по площади. В этом методе количество битов, заданных в маске покрытия для пикселя, должно быть пропорционально фактическому покрытию площади фрагмента. Это приведет к тому, что для мультисэмплов будут установлены некоторые биты покрытия, которые на самом деле не расположены внутри отображаемого примитива, и могут вызвать наложение псевдонимов и другие артефакты.
Примеры выкроек [ править ]
Обычная сетка [ править ]
Шаблон регулярной сетки выборки, в котором местоположения нескольких выборок образуют равномерно расположенную сетку по пикселю, легко реализовать и упрощает оценку атрибутов (т. е. установку субпиксельных масок, цвета и глубины выборки). Этот метод требует больших вычислительных затрат из-за большого количества выборок. Оптимизация краев неудовлетворительна для краев, выровненных по экрану, но качество изображения хорошее, когда количество мультисэмплов велико.
Разреженная регулярная сетка [ править ]
Шаблон выборки с разреженной регулярной сеткой представляет собой подмножество образцов, выбранных из шаблона выборки с регулярной сеткой. Как и в случае с обычной сеткой, оценка атрибутов упрощается благодаря регулярному интервалу. Этот метод менее затратен в вычислительном отношении из-за меньшего количества выборок. Оптимизация краев хороша для выравнивания краев экрана, а качество изображения хорошее для умеренного количества мультисэмплов.
Стохастические образцы моделей [ править ]
Стохастическая выборка представляет собой случайное распределение мультисэмплов по пикселю. Неравномерное расположение образцов усложняет оценку атрибутов. Этот метод экономически эффективен из-за небольшого количества выборок (по сравнению с обычными сетками). Оптимизация краев с помощью этого метода, хотя и неоптимальна для краев, выровненных по экрану. Качество изображения превосходное для умеренного количества образцов.
Качество [ править ]
По сравнению с суперсэмплированием, мультисэмпловое сглаживание может обеспечить аналогичное качество при более высокой производительности или лучшее качество при той же производительности. Дальнейших улучшенных результатов можно достичь, используя субпиксельные маски с повернутой сеткой. Дополнительная полоса пропускания, необходимая для множественной выборки, достаточно мала, если доступны Z и сжатие цвета. [8]
Большинство современных графических процессоров поддерживают образцы MSAA 2×, 4× и 8×. Более высокие значения приводят к лучшему качеству, но медленнее.
См. также [ править ]
Ссылки [ править ]
- ^ «Дополнения к главе 3 спецификации 1.2.1» .
- ^ «Спецификация OpenGL 1.5» (PDF) .
- ^ «Значение сглаживания: для чего оно используется?» . ОРВИ ВР. 14 сентября 2018 г. Проверено 14 сентября 2018 г.
- ^ «Синтаксис ShaderLab: альфа-тестирование» . Unity3d.com. 27 апреля 2008 г. Проверено 31 июля 2012 г.
- ^ «Мультисемпловое сглаживание: вид крупным планом» . Alt.3dcenter.org . Проверено 31 июля 2012 г.
- ^ «Визуальное сравнение различных режимов сглаживания» . Nhancer.com. Архивировано из оригинала 28 января 2013 г.
- ^ Мэтт Петтинео (25 октября 2012 г.). «Краткий обзор MSAA» . Проверено 24 ноября 2016 г.
- ^ «Мультисемпловое сглаживание: вид крупным планом» . Alt.3dcenter.org . Проверено 31 июля 2012 г.