Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по КГГ полное2.doc
Скачиваний:
39
Добавлен:
17.09.2019
Размер:
2.49 Mб
Скачать

4.9.Алгоритм Вейлера-Азертона (Weiler-Atherton)

Разбиение картинной плоскости можно производить не только прямыми, параллель­ными координатным осям, но и по границам проекций граней. В результате получается точное решение задачи.

Предлагаемый метод работает с проекциями граней на картинную плоскость.

В качестве первого шага производится сортировка всех граней по глубине (front-to-back).

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

Таким образом, получаются два множества граней: Fin – грани, проекции которых со­держатся в проекции грани A, (сюда входит и сама грань A), и Fout – грани, проекции ко­торых не имеют общих внутренних точек с проекцией грани A.

Множество Fin обычно называют множеством граней, внутренних по отношению к A.

Однако множестве Fin могут быть грани, лежащие к наблюдателю ближе, чем сама грань A (это возможно, на­пример, при циклическом наложении граней). В этом случае каждая такая грань используется для разбиения всех граней из множества Fin (включая исходную грань A). Когда рекурсивное разбиение завершится, то все грани из первого множества выводятся из набора оставшихся граней (их уже ничто не может закрывать). Затем из набора оставшихся граней Fout берется очередная грань и процедура повторяется.

Рассмотрим простейший случай для двух граней A и B (Рис. 5.19).

Рис. 4.69 Пример разбиения граней

Будем считать, что грань A расположена ближе, чем грань B. Тогда на первом шаге для разбиения используется именно используется именно грань A. Грань B разбивается на две части. Часть B1 попадает в первое множество Fin и, так как она лежит дальше грани A, удаляется.

После этого выводится грань A и в списке оставшихся граней остается только грань B2. Так как кроме нее дру­гих граней не осталось, то эта грань выводится, и на этом ра­бота завершается.

5.Методы закраски

5.1.Диффузное отражение и рассеянный свет

Матовые поверхности обладают свойством диффузного отражения, т. е. Равномер­ного по всем направлениям рассеивания света. Поэтому кажется, что поверхности имеют одинаковую яркость независимо от угла обзора. Для таких поверхностей справедлив за­кон косинусов Ламберта, устанавливающий соответствие между количест­вом отраженного света и косинусом угла между направлением на точечный источник света интенсивности Ip и нормалью к поверхности (рис. 6.1). При этом количество отра­женного света не зависит от положения наблюда­теля.

Рис. 5.70 Падающий свет и нормаль к поверхности

Освещенность рассеянным светом вычисляется по формуле:

Id = Ip kd  cos

Значение коэффициента диффузного отражения kd является константой в диапазоне (0, 1) и зависит от мате­риала. Если векторы и нормированы, то используя скалярное про­изведение, формулу освещенности можно за­писать так:

Id = Ip kd  ( )

Предметы, освещенные одним точечным источником света, выглядят контрастными. Этот эффект аналогичен тому, который можно наблюдать, когда предмет, помещенный в темную комнату, виден при свете направленной на него фотовспышки. В данной ситуа­ции в отличии от большинства реальных визуальных сцен отсутствует рас­сеянный свет, под которым здесь понимается свет постоянной яркости, созданный многочисленными отражениями от различных поверхностей. Такой свет практически всегда присутствует в реальной обстановке. Даже если предмет защищен от прямых лучей, исходящих от то­чечного источника света, он все равно будет ви­ден из-за наличия рассеянного света. Учитывая это формулу окраски можно записать так:

Id = Ia ka + Ip kd  ( )

Рассеянный свет представлен членом Ia и ka определяет количество рассеянного света, ко­торое отражается от по­верхности предмета.

Точечный источник света удобнее всего расположить в позиции совпадающий с гла­зом наблюдателя. Тени в этом случае отсутствуют, а лучи света, падающие на поверхность, окажутся параллельными. Однако теперь, если две поверхности одного цвета параллельны друг другу и их изображения перекрываются, нормали к поверхно­стям совпадают и, следовательно, поверхности закрашиваются одинаково и различить их невозможно. Этот эф­фект можно устранить, если учесть, что энергия падающего света убывает пропорционально квадрату расстоя­ния, которое свет проходит от источника до поверхности и обратно к глазу наблюдателя. Обозначая это расстоя­ние за R, запишем:

Id = Ia ka + Ip kd  ( )/R2

Однако данным правилом на практике трудно воспользоваться. Для параллельной про­екции, когда источник света находится в бесконечности, расстояние R также становится бесконечным. Даже в случае центральной про­екции величина 1/R2 может принимать зна­чения в широком диапазоне, поскольку точка зрения часто оказывается достаточно близ­кой к предмету. В результате закраска поверхностей, которые имеют одинаковые углы между и , будет существенно различаться. Большей реалистичности можно достичь, если заменить R2 на r+k, где k – некоторая константа, а r –расстояние от центра проекции до поверхности:

Id = Ia ka + Ip kd  ( )/(r+k)

Для представления диффузного отражения от цветных поверхностей уравнения записы­ваются отдельно для ос­новных цветов модели CMY (голубого, пурпурного и жел­того). При этом константы отражения для этих цветов задаются тройкой чисел (kdc, kdm kdy). Эти цвет используются, поскольку отражение света является субтрактивным про­цессом. Поэтому интенсивность для цветного изображения описывается тремя уравнениями:

Idс = Iaс kaс + Ipс kdс  ( )/(r+k) (для голубой компоненты)

Idm = Iam kam + Ipm kdm  ( )/(r+k) (для пурпурной компоненты)

Idy = Iay kay + Ipy kdy  ( )/(r+k) (для желтой компоненты)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]