В случае, когда рассматривается изменение количественной невидимости вдоль ребра, выходящего из вершины, принадлежащей контурной линии, необходимо проверить, не закрывается ли это ребро одной из граней, выходящей из этой вершины (как, например, грань ЭЕКТ закрывает ребро В], и это является аналогом точки сборки).

Так как для реальных объектов количество ребер, входящих в контурную линию, намного меньше общего числа ребер (если общее количество ребер равно /7,' то количество ребер, входящих в контурную линию, - 0("^Гп))9 алгоритм Аппеля является более эффективным, чем алгоритм Робертса.

На поверхности многогранников можно выделить набор линий такой, что каждая контурная линия независимо от направления проектирования обязательно пересечет хотя бы одну из линий этого набора. Таким образом, для отыскания контурных линий необязательно перебирать все ребра - достаточно проверить заданный набор и восстановить контурные линии от точек пересечения с этим набором.

Замечание. Для повышения эффективности данного алгоритма возможно использование разбиения картинной плоскости - для каждой клетки разбиения строится список ребер контурной линии, чьи проекции пересекают данную клетку.

10.4. Удаление невидимых граней Задача удаления невидимых граней является заметно более сложной, чем задача удаления невидимых линий, хотя бы по общему объему возникающей информации. Если практически все методы, служащие для удаления невидимых линий, работают в объектном пространстве и дают точный результат, то для удаления невидимых поверхностей существует большое число методов, работающих только в картинной плоскости, а также смешанных методов.

10.4.1. Метод трассировки лучей Наиболее естественным методом для определения видимости граней является метод трассировки лучей (вариант, используемый только для определения видимости, без отслеживания отраженных и преломленных лучей обычно называется ray casting), при котором для каждого пиксела картинной плоскости определяется ближайшая к нему грань, для чего через этот пиксел выпускается луч, находятся все точки его пересечения с гранями и среди них выбирается ближайшая.


⇐ Предыдущая| |Следующая ⇒