Избыточная выборка сглаживания

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Избыточная выборка сглаживания или суперсемплинг[1] (англ. Supersample anti-aliasing, SSAA) — это наиболее простая и, вместе с тем, ресурсоёмкая техника сглаживания.

В процессе растеризации графического примитива (треугольника, линии или точки) без сглаживания GPU определяет цвет каждого пикселя на основе выборки (англ. sample) из центра этого пикселя. Если центр пикселя лежит внутри примитива, то этот пиксель закрашивается цветом этого примитива.

Суперсэмплинг увеличивает число дискретных выборок на пиксель (как правило, в раз). В случае с выборка производится с удвоенной частотой по обеим осям и сохраняется в экранном буфере (англ. back buffer). При использовании SSAA Nx размер этого буфера увеличивается в раз. Так, для разрешения 1280x1024 с SSAA 4x необходим экранный буфер такого же размера, как при разрешении 2560x2048 без SSAA. Очевидно, что каждому пикселю на экране в таком случае соответствует 4 пикселя в экранном буфере, поэтому пиксели экранного буфера называют субпикселями, не путать с субпикселями мониторов.

Если очередная выборка оказывается внутри растеризуемого примитива, её результат сохраняется в соответствующий субпиксель. В остальных случаях результат выборки игнорируется. После того, как все нужные выборки сохранены в экранном буфере, итоговый цвет пикселя определяется как усредненное значение цветов всех соответствующих ему субпикселей. В случае (см. гамма-коррекция) формула выглядит следующим образом:

где:

  • — итоговый цвет пикселя,
  •  — количество выборок на пиксель,
  •  — цвет -й выборки.

Расположение выборок

[править | править код]

Выборки могут иметь разное физическое расположение внутри пикселя. Можно отметить следующие способы расположения:

  • Ordered Grid SuperSampling (OGSS) — выборки располагаются на обычной регулярной сетке.
  • Rotated Grid SuperSampling (RGSS) — выборки располагаются на повёрнутой сетке. Этом метод даёт особенно хороший результат на близких к горизонтальным и вертикальным линиях.
  • Sparse Grid SuperSampling (SGSS) — выборки располагаются на регулярной сетке, как в OGSS. В отличие от последнего, выборка производится лишь на некоторых узлах сетки. Это первый метод сглаживания, являющийся компромиссом между скоростью работы и качеством изображения[2].
  • Custom Filter Anti-Aliasing (CFAA) — выборки располагаются не только внутри, но и вне пикселя[3].

Примечания

[править | править код]
  1. В DirectX SDK Documentation эта технология называется oversampling
  2. Anti-aliasing technologies. Дата обращения: 12 июня 2013. Архивировано из оригинала 30 мая 2013 года.
  3. Справочная информация о семействе видеокарт Radeon HD 2000. iXBT.com. Дата обращения: 12 июня 2013. Архивировано 10 мая 2012 года.