Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
А.А. Шелестов - Компьютерная графика.doc
Скачиваний:
121
Добавлен:
10.05.2015
Размер:
6.48 Mб
Скачать

3.11 Прозрачность

Рис. 3.19 - Стеклянный чайник, слева прозрачный на 10%,

в центре - на 50% и справа - на 90%

Интенсивность участка пересечения двух прозрачных тел определяется по формуле:

, (3.62)

где коэффициент прозрачности тела 1 и 2;

интенсивность объектов 1 и 2.

Перейдем теперь от интенсивности к цвету. Т.е. вместо интенсивности объекта будем рассматривать его цвет.

Цвет объекта состоит из трех компонент: [r, g, b] - красная (r), зеленая (g), синяя (b).

Будем вместо коэффициента прозрачности рассматривать степень прозрачности (ПР) тела. Измеряется ПР в %. Если ПР = 0, то тело абсолютно непрозрачное, при ПР = 1 – абсолютно прозрачное.

Тогда, с учетом этих обозначений, определим цвет участка пересечения двух тел со степенью прозрачности ПР1иПР2:

,(3.63)

где - результирующий вектор компонент цвета.

Первое слагаемое в (3.63) определяет, какая часть цвета 1-го объекта остается в результирующем цвете; второе слагаемое - какая часть цвета 2-го объекта участвует в результирующем цвете; на основе соотношения (3.63) и строится весь алгоритм определения результирующего цвета пересечения двух прозрачных тел:

  1. Если объекты не пересекаются п.4, иначе п.2.

  2. Определить область пересечения объектов

  3. Определить цвет области пересечения по формуле (3.63)

  4. Конец.

3.12 Тени

Алгоритмы затенения в случае точечных источников света идентичны алгоритмам удаления скрытых поверхностей!!! В алгоритме удаления скрытых поверхностей определяются поверхности, которые можно увидеть из точки зрения, а в алгоритме затенения выделяются поверхности, которые можно «увидеть» из источника света. Поверхности, видимые как из точки зрения, так и из источника света, являются освещенными. Поверхности видимые из точки зрения, но невидимые из источника света находятся в тени. При наличии нескольких распределенных источников света потребуется вычислять как тени, так и полутени.

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

Сложность вычислений зависят и от положения источника света. Легче всего, когда источник находится в бесконечности, и тени определяются с помощью ортогонального проецирования. Сложнее, если источник расположен на конечном расстоянии, но вне поля зрения – здесь необходима перспективная проекция. Самый трудный случай, когда источник находится в поле зрения. Тогда пространство необходимо делить на секторы и искать тени отдельно для каждого сектора.

Тени образуются двумя способами: это собственная тень и проекционная. Собственная тень получается, когда сам объект экранирует все грани от источника света, например, правая грань параллелепипеда на рис 3.20. При этом алгоритм затенения аналогичен алгоритму удаления нелицевых граней, если точку наблюдения совместить с источником света.

Рис 3.20 – Виды теней

Проекционная тень – один объект препятствует попаданию света на другой. Например, тень на горизонтальной плоскости на рис. 3.20. Чтобы найти такие тени, нужно построить проекции всех нелицевых граней на сцену. Центр проекции находится в источнике света. Точки пересечения проецируемой грани со всеми другими плоскостями образуют многоугольники, которые помечаются как теневые многоугольники и заносятся в структуру данных.

После добавления теней к структуре данных, как обычно, строится вид сцены из заданной точки наблюдения. Напомним, что для создания разных видов не нужно вычислять тени заново, так как они зависят только от положения источника (но не наблюдателя).

Рис. 3.21 - Клетка. Справа тень получена алгоритмом

построчного сканирования, слева - трассировкой лучей

Рис. 3.22 - Стеклянная ваза. Справа тень получена алгоритмом построчного сканирования, слева - трассировкой лучей