Множественная выборка сглаживания

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

Описание править

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

Мультисемплинг увеличивает число дискретных выборок для краёв объекта в   раз, в отличие от сглаживания с избыточной выборкой, где число выборок увеличивается для всей сцены. Выборки для каждого пикселя, в таком случае, называют субпикселями, не путать с субпикселями мониторов. Так, при 4-кратном мультисемплинге края объектов будут отрисовываться в 4-кратном разрешении.

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

 ;

где:

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

Отличие этого способа сглаживания от SSAA в том, что 4-кратный экранный буфер используется лишь для пикселей, показывающих края какого-либо объекта, сглаживание «лесенок» на которых и является главной задачей. Это позволяет увеличить производительность, но не работает на прозрачных полигонах, а также несовместимо с методом отложенного освещения в DirectX 9 и младше.

См. также править

Примечания править