Мультисэмпловое сглаживание
этой статьи Начальный раздел может быть слишком коротким, чтобы адекватно суммировать ключевые моменты . ( июнь 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 г.