Суперсэмплинг или суперсэмплинг сглаживание ( SSAA ) — это метод пространственного сглаживания , то есть метод, используемый для удаления алиасинга (зубчатых и пикселизированных краев, в просторечии называемых « зубцами ») из изображений, визуализируемых в компьютерных играх или других компьютерных программах, которые генерируют изображения. Алиасинг происходит потому, что в отличие от реальных объектов, которые имеют непрерывные плавные кривые и линии, экран компьютера показывает зрителю большое количество маленьких квадратов. Все эти пиксели имеют одинаковый размер, и каждый из них имеет один цвет. Линия может быть отображена только как набор пикселей, и поэтому выглядит неровной, если она не идеально горизонтальна или вертикальна. Цель суперсэмплинга — уменьшить этот эффект. Образцы цвета берутся в нескольких местах внутри пикселя (а не только в центре, как обычно), и вычисляется среднее значение цвета. Это достигается путем визуализации изображения с гораздо более высоким разрешением, чем отображаемое, а затем сжатия его до желаемого размера с использованием дополнительных пикселей для расчета. Результатом является изображение с пониженной дискретизацией и более плавными переходами от одной линии пикселей к другой вдоль краев объектов. Количество выборок определяет качество вывода .
Алиасинг проявляется в случае 2D-изображений как муаровый узор и пикселизированные края, в просторечии известные как « ступенчатые края ». Общие знания по обработке сигналов и обработке изображений предполагают, что для достижения идеального устранения алиасинга требуется правильная пространственная выборка с частотой Найквиста (или выше) после применения 2D -фильтра сглаживания . Поскольку этот подход потребовал бы прямого и обратного преобразования Фурье , были разработаны менее требовательные к вычислениям приближения, такие как суперсэмплинг, чтобы избежать переключения доменов, оставаясь в пространственном домене («домене изображения»).
Суперсэмплинг требует больших вычислительных затрат, поскольку он требует гораздо больше памяти видеокарты и пропускной способности памяти , поскольку объем используемого буфера в несколько раз больше. [1] Способом решения этой проблемы является использование техники, известной как адаптивный суперсэмплинг , при котором суперсэмплингу подвергаются только пиксели на краях объектов.
Первоначально в каждом пикселе берется только несколько образцов. Если эти значения очень похожи, то для определения цвета используются только эти образцы. Если нет, то используются дополнительные образцы. Результатом этого метода является то, что большее количество образцов вычисляется только там, где это необходимо, тем самым повышая производительность.
При взятии образцов в пределах пикселя, позиции образцов должны быть определены каким-то образом. Хотя количество способов, которыми это можно сделать, бесконечно, есть несколько способов, которые обычно используются. [1] [2]
Самый простой алгоритм . Пиксель разбивается на несколько субпикселей, и выборка берется из центра каждого. Это быстро и легко реализовать. Хотя из-за регулярной природы выборки все еще может возникнуть алиасинг, если используется небольшое количество субпикселей.
Также известный как стохастическая выборка, он избегает регулярности супервыборки сетки. Однако из-за нерегулярности шаблона выборки оказываются ненужными в некоторых областях пикселя и отсутствующими в других. [3]
Алгоритм выборки диска Пуассона [4] размещает образцы случайным образом, но затем проверяет, что любые два не слишком близки. Конечный результат — равномерное, но случайное распределение образцов. Наивный алгоритм «метания дротиков» чрезвычайно медленный для больших наборов данных, что когда-то ограничивало его применение для рендеринга в реальном времени . [3] Однако сейчас существует много быстрых алгоритмов для генерации шума диска Пуассона, даже с переменной плотностью. [5] [6] [7] Набор Делоне обеспечивает математическое описание такой выборки.
Модификация алгоритма сетки для аппроксимации диска Пуассона. Пиксель разбивается на несколько субпикселей, но выборка берется не из центра каждого, а из случайной точки внутри субпикселя. Конгрегация все еще может происходить, но в меньшей степени. [3]
Используется сетка 2×2, но шаблон образца поворачивается, чтобы избежать выравнивания образцов по горизонтальной или вертикальной оси, что значительно улучшает качество сглаживания для наиболее часто встречающихся случаев. Для оптимального шаблона угол поворота равен arctan ( 1/2 ) (около 26,6°) и квадрат растягивается в раз√ 5/2 [8] [ требуется ссылка ] , что делает это также решением с 4 ферзями .
В целом, SSAA обеспечивает исключительное качество изображения, но здесь производительность падает существенно, поскольку сцена визуализируется с очень высоким разрешением.