

Рис. 7.59. Сглаживание изображения прямолинейного отрезка: а- несглаженное ступенчатое изображение; б - изображение, сглаженное усреднением по области; в - увеличенное несглаженное изображение; г -увеличенное сглаженное изображение Аналогичные проблемы с дискретизацией непрерывного изображения на сетке растра возникают и при использовании алгоритма г-буфера в простейшем варианте. При описании алгоритма было сказано, что цвет пикселя определяется цветом единственного примитива. Но рассмотрим вариант, когда поле пикселя разделено между несколькими примитивами - тремя многоугольниками, как в случае, показанном на рис. 7.60. Если цвет каждого многоугольника отличается от цвета остальных "претендентов", то пикселю присваивается цвет того из них, который ближе к наблюдателю. Но можно более точно передать сложившуюся ситуацию, если присвоить пикселю смешанный цвет, составляющие которого несут информацию о том, какую часть площади пикселя занимает каждый из треугольников-"претендентов". В главе 9 будет рассмотрен алгоритм, который использует в такой ситуации накапливающий буфер и с его помощью реализует взвешенное усреднение.
Выше мы рассмотрели только эффект пространственной дискретизации. Но при формировании динамических изображений появляются и эффекты, связанные с дискретизацией во временной области.

7.11. Сглаживание ступенек на изображении линий Пусть, например, в последовательных кадрах динамического изображения образ объекта достаточно малого размера, сравнимого с размерами пикселя, перемещается перед "объективом" камеры (рис. 7.61). Стандартная процедура

тонирования предполагает анализ лучей, проходящих через центры пикселей, и определяет, на какой объект сцены этот луч "натолкнется" первым. При работе с таким малым объектом может оказаться, что в одном кадре анализируемый луч наталкивается на объект и что этот объект соответственно попадет в изображение, а в следующем кадре объект окажется между двумя соседними лучами, и ни один из них его "не заметит". Тогда объект просто не попадет в следующий кадр. В результате пользователь увидит на экране движущуюся мерцающую точку. С этим явлением можно боооться по-оазному. Один из ваоиан тов - использовать несколько зондирующих лучей на каждый пиксель и коды засветки, сформированные в результате анализа совокупности лучей.