Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы автоматизированного проектирования (Бори...docx
Скачиваний:
43
Добавлен:
09.11.2019
Размер:
1.28 Mб
Скачать

Расчет теневых участков

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

Алгоритмы рассчета затенения в случае точечных источников света идентичны алгоритмам удаления скрытих линий и поверхностей, только в этом случае решается задача – какие поверхности можно увидеть не из точки зрения, а из источника света.

Поверхности, видимые из источника света (= точки зрения), не лежат в тени.

На закраску участков поверхности, которые находятся в тени, влияет только рассеянный свет.

Поверхности, пропускающие свет

Кроме свойств диффузного и зеркального отражения, поверхности могут обладать свойствами направленного и диффузного пропускания света.

Направленное пропускание – происходит сквозь прозрачные вещества (стекло), через которые, как правило, хорошо видны предметы.

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

Учитывается редко, так как порождает бесконечное количество выходящих лучей.

Направленное пропускание света

При наличии преломления, геометрический и оптический лучи не совпадают.

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

Моделирование пропускания света без преломления

Рассмотрим поперечное сечение двух многоугольников плоскостью .

Многоугольник 2 виден сквозь многоугольник 1.

Интенсивность закраски области перекрытия определяется как взвешенная сумма значений интенсивности закраски каждого многоугольника:

,

где k – коэффициент прозрачности многоугольника 1:

если k = 0, то многоугольник абсолютно прозрачен;

если k = 1, то многоугольник абсолютно непрозрачен.

Построение теней для поверхностей, которые как пропускают, так и отражают свет, нахывается трассировкой лучей.

Идея алгоритма трассировки лучей

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

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

Луч света, падающий на поверхность, делится на три части:

  • диффузно отраженный свет

  • зеркально отраженный свет

  • пропущенный свет (в общем случае преломленный)

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

Так как диффузное отражение порождает бесконечное количество лучей, то трассируются только лучи, появляющиеся в результате зеркального отражения и пропускания (преломления). А для моделирования рассеянного света и диффузного отражения используется известная модель:

Рассмотрим пример трассирования луча для трех поверхностей:

– зеркально отражающаяся часть луча, падающего на i-ую поверхность.

– пропущенная (преломленная) часть луча, падающего на i-ую поверхность и проходящего сквозь нее.

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

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