Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_3D-mod.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
10.94 Mб
Скачать

Пропускание света (прозрачность)

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

При переходе из одной среды в другую световой луч преломляется (торчащая из воды палка кажется согнутой) (рис. 13.9). Преломление рассчитывается по закону Снеллиуса: падающий и преломляющий лучи лежат в одной плоскости, а углы падения и преломления определяются по формуле:

, где

- показатели преломления двух сред.

Рис. 13.9 Преломление лучей

Моделирование пропускания света осуществляется несколькими способами. В простейшем из них преломление не учитывается совсем, и световые лучи пересекают поверхность без изменения направления. Таким образом все, что видимо на луче зрения при его прохождении через прозрачную поверхность, геометрически также принадлежит этому лучу. При наличии преломления геометрический и оптический лучи зрения не совпадают (рис. 13.10). Без учета преломления виден предмет В, с преломлением – предмет А. На первый взгляд достаточно знать угловые соотношения в точках пересечения луча с объектом. Но это не так, так как длина пути луча в объекте тоже меняется, поэтому не совпадают точки выхода луча из объекта, и меняется количество поглощенного объектом света. Вследствие этого исходящий луч имеет другую интенсивность.

Рис. 13.10 Пропускание света с преломлением и без преломления

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

, где

— интенсивность видимой поверхности,

— интенсивность поверхности за видимой,

— коэффициент прозрачности первой поверхности (если , первая поверхность полностью прозрачна, если , поверхность полностью непрозрачна).

Если вторая поверхность тоже прозрачна, то алгоритм применяется рекуррентно, пока не встретится непрозрачная поверхность или фон.

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

Общий вид модели освещения:

,

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

где а – рассеянный свет, d – диффузноотраженный свет, s - зеркальноотраженный свет, t – пропущенный свет.

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

а) б) в) г)

Рис. 13.11 Результаты освещения с разными составляющими отражения

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