4.2.4. ИЗОБРАЖЕНИЕ КРИВОЛИНЕЙНЫХ ПОВЕРХНОСТЕЙ
Пусть объект представляет собой участок криволинейной поверхности типа
;
;
. На основании закона связи экранной
и объектной системы
преобразуем описание поверхности в экранную систему:
;
;
. Пересечем эту поверхность со сканирующей плоскостью
, которая проходит через
-ю сканирующую строку и центр проекции
. Для центральной проекции
описывается уравнением
,
а для ортогональной - параллельно оси
, т.е. уравнение
вырождается в форму
.
Для определения пересечения решим систему из следующих уравнений:

результатом которой является параметрическая кривая, которая, к сожалению, не всегда имеет аналитическую форму и не всегда однозначна. Если же перебирать точки на сканирующей строке от пиксела к пикселу, то численными методами удастся определить параметры
и
в пересечениях световых лучей, исходящих из пикселов и криволинейной поверхности. В случае ортогональной проекции это означает, что для текущего пиксела под номером
на
-й сканирующей строке необходимо найти решения
;
.
По установленным параметрам
для
-гo пиксела вычисляется удаление до пиксела. Подобные операции выполняются для всех поверхностей сцены. Наименьшее удаление указывает на видимую поверхность, освещенность которой в данном пикселе вычисляется по параметрам
. Конкретный алгоритм изображения бикубической поверхности методом сканирующей строки описан в [71].
Таким образом, в общих чертах алгоритм сканирующей строки для криволинейных поверхностей заключается в следующем. Предварительной сортировкой среди множества поверхностей сцены выделяют такие, которые попадают в поле обзора. Затем для каждой сканирующей строки
,
, перебирают последовательно пикселы строки
,
, и, наконец, последовательно перебирают каждую поверхность. При этом решают уравнения
;
и вычисляют удаление от каждого
-гo пиксела до каждой поверхности. Ближняя поверхность объявляется видимой, ее атрибуты и координаты
используются для расчета освещенности в текущем
-м рецепторе.
Изображение падающих теней для такого алгоритма затруднено, а собственные тени и блики на освещенной стороне имитируются достаточно просто.
Приведенный алгоритм имеет множество оригинальных модификаций, учитывающих, например, когерентность сканирующих строк [100] или ориентированных только на изображение сфер [124], что приводит к значительному повышению эффективности.