Набор Алгоритмов

Статья посвящена тому, как сглаживать отображаемые графические элементы. В статье рассмотрены 2 метода сглаживания. В данной статье рассматривается сглаживание для отображения, как двух-мерной, так и трёх-мерной графики, на примере отображения прямой линии.

Алгоритмы - Сглаживание графики (Anti-aliasing).

1. Введение.

Сглаживание — это технология для устранения эффекта зубчастости.

Всего алгоритмов сглаживания, в статье, два.

Вот они:

2. Super Sample Anti-Aliasing, Сглаживание на основе сверх-образца.

Для начала построим прямую на изображении 200 на 100 точек. Вот оно увеличенное в 4 раза:

Рис. 1. Увеличенное изображение прямой на кадре размером 200 на 100 точек.

Сам процесс сглаживания на основе сверх-образца построен на том, что изображение строится на увеличенном кадре, а потом линейно уменьшается.

Вот пример прямой, построенной на кадре в 4 раза больше предыдущего (800 на 400 точек).

Рис. 2. Изображение прямой на кадре размером 800 на 400 точек.

Теперь линейно уменьшим его до кадра размером 200 на 100 точек (уменьшим в 4 раза). Вот пример этого рисунка, увеличенного после всего в 4 раза:

Рис. 3. Линейно уменьшенное изображение прямой, предыдущего рисунка, на кадр размером 200 на 100 точек.

Как вы видите прямые на Рисунке 1 и Рисунке 3 построены одинаково (одинакового размера), но различны: прямая на Рисунке 3 получилась со сглаживанием.

Этот алгоритм требует, чтобы изображение было построено пропорционально на увеличенном кадре (холсте), а потом уменьшен во столько раз на меньший холст:

Рис. 4. Уменьшение кадра.

3. Multi Sample Anti-Aliasing, Сглаживание на основе множественного образца.

Сглаживание построено на том, что для каждого пикселя строятся опорные точки. Сколько опорных точек попало в область — на столько область и рисуется.

Часть прямой без этого сглаживания выглядит так:

Рис. 5. Часть прямой без сглаживания.

Для каждого пикселя строятся опорные точки.

Рис. 6. Опорные точки пикселя.

Построим опорные точки для всех пикселей, для пикселей полностью попавших в область (со всеми опорными точками) закрашиваем их.

Рис. 7. Опорные точки пикселей.

Закрасим пиксели, опорные точки которых попали в объект частично, в соответствии с тем количеством точек, которые попали в границы объекта:

Рис. 8. Сглаживание на основе множественного образца.

4. Заключение.

В заключение могу Вам пожелать разработки своего графического редактора. Также изучайте черчение (начертательную геометрию), оно Вам пригодиться в программировании в дальнейшем.