9.7.4. Сглаживание погрешностей дискретизации Очень часто альфа-канал применяется для устранения погрешностей изображения, связанных с дискретностью растра {antialiasing). В главе 7 было отмечено, что в идеале образ прямой на растре должен везде иметь одну и ту же толщину, причем она должна быть равна шагу между точками растра. Такой идеальный образ частично перекрывает некоторое количество пикселей, как видно на рис. 9.30. Предположим, что при обработке фрагмента прямой (напомню, фрагментом в данном случае считается участок образа прямой, не превышающий размеров пикселя), которая выполняется на этапе обработки геометрических данных в ходе растрового преобразования, мы установим значение а для соответствующих пикселей пропорционально (или почти пропорционально) той части площади пикселя, которая перекрывается образом прямой. В самом простом случае значение а может быть приравнено к относительной площади пикселя, перекрытой образом. Затем это значение можно использовать в качестве коэффициента полноты значений цветовых составляющих, вычисленных алгоритмом тонирования. При этом следует настроить такой режим смешивания, который предусматривает применение в качестве коэффициента смешивания приемника значения 1-а, а в качестве коэффициента смешивания источника - значение а. Однако если пиксель частично перекрывается не одним, а двумя или несколькими фрагментами, то появляется несколько вариантов их наложения (рис. 9.31). В правой части рисунка показан случай, когда фрагменты не накладываются друг на друга, а в левой части - когда накладываются. Рассмотрим эту проблему с точки зрения программирования преобразования, которое по очереди независимо обрабатывает все объекты (многоугольники). Предположим, что перед началом процесса в пикселе-приемнике установлен непрозрачный фон цвета С0. Можно установить значение
9.7. Технология комбинирования изображений ао=0, поскольку пиксель еще не перекрыт фрагментом какого-либо многоугольника. Затем обрабатывается первый многоугольник. В результате в пикселе-приемнике будет установлен код цвета О/ и значение о^: