Оглавление Дополнительное чтение Учебник «Компьютерная графика» Лекция 23. Диффузное отражение Лекция 25. Аппроксимация света на модели Фонга

Часть III / Лекция 24. Зеркальное отражение

Интенсивность зеркально отраженного света зависит от угла падения q, длины волны падающего света L и свойств вещества. Хорошо известное основное уравнение Френеля имеется в любой книге по геометрической оптике. Зеркальное отражение света является направленным. Угол отражения от идеальной отражающей поверхности (зеркала) равен углу падения, в любом другом положении наблюдатель не видит зеркально отраженный свет. Это означает, что вектор наблюдения S совпадает с вектором отражения R. Если поверхность не идеальна, то количество света, достигающее наблюдателя, зависит от пространственного распределения зеркально отраженного света. У гладких поверхностей распределение узкое или сфокусированное, у шероховатых — более широкое.

рис. 24.1

В простых моделях освещения обычно пользуются эмпирической моделью Буи-Туонга Фонга, так как физические свойства зеркального отражения очень сложны. Модель Фонга имеет вид:
Is = Il * w(i, l) * cosna, где
Is — интенсивность света, попавшего в глаз наблюдателя,
Il — интенсивность падающего света,
w(i, l) — кривая отражения, представляющая отношение зеркально отраженного света к падающему как функцию угла падения i и длины волны l,
a — угол между направлением света и нормалью к поверхности,
n — степень, аппроксимирующая пространственное распределение зеркально отраженного света.

Свойства

Благодаря зеркальному отражению на блестящих предметах появляются световые блики. Из-за того, что зеркально отраженный свет сфокусирован вдоль вектора отражения, блики при движении наблюдателя тоже перемещаются. Более того, так как свет отражается от внешней поверхности (за исключением металлов и некоторых твердых красителей), то отраженный луч сохраняет свойства падающего. Например, при освещении блестящей синей поверхности белым светом возникают белые, а не синие блики. Посмотрите на рис. 24.2: на нем изображен график функции cosna на промежутке -p/2 <= a <= p/2 для различных n. Эта функция приближенно описывает пространственные распределения для зеркального отражения. БОльшие значения n дают сфокусированные пространственные распределения характеристик металлов и других блестящих поверхностей, а малые — более широкие распределения для неметаллических поверхностей, например бумаги.

рис. 24.2

Коэффициент зеркального отражения w зависит от угла падения, однако даже при перпендикулярном падении зеркально отражается только часть света, а остальная часть либо поглощается, либо отражается диффузно. Эти соотношения определяются свойствами вещества и длиной волны. Коэффициент отражения для некоторых неметаллов может быть равен всего 4%, в то время как для металлических материалов — более 80%. На рис. 24.3, слева, коэффициенты отражения для некоторых веществ при нормальном падении света показаны как функции длины волны, а на рисунке справа — как функции угла падения. Обратите внимание, что при падении под скользящим углом (q = 90o) коэффициент отражения стремится к 100%, то есть отражается почти весь падающий свет.

рис. 24.3

Модель освещения

Объединяя эти результаты с формулой рассеянного света и диффузного отражения, получим модель освещения:
I = Iaka + (Il/(d + K)) * (kd * cosq + w(i, l) * cosna).

Функция w(i, l) довольно сложна, поэтому ее обычно заменяют константой ks, которая либо выбирается из эстетических соображений, либо определяется экспериментально. С учетом этого:
I = Iaka + (Il/(d + K)) * (kd * cosq + ks * cosna).

В машинной графике эта модель часто называется функцией закраски и применяется для расчета интенсивности или тона точек объекта или пикселов изображения. Чтобы получить цветное изображение, нужно найти функции закраски для каждого из трех основных цветов. Константа ks обычно одинакова для всех трех основных цветов, поскольку цвет зеркально отраженного света определяется цветом падающего. Если имеется несколько источников света, то их эффекты суммируются. В этом случае модель освещения определяется так:
I = Iaka + S (Ili/(d + K)) * (kd * cosqi + ks * cosniai),
где суммирование по i идет от 1 до количества источников m.

Применяя формулу скалярного произведения двух векторов, запишем:
cosq = (n * L)/(|n| * |L|) = n' * L',
где n' и L' — единичные векторы соответственно нормали к поверхности и направления к источнику. Точно так же:
cosa = (R * S)/(|R| * |S|) = R' * S',
где R' и S' — единичные векторы, определяющие направления отраженного луча и луча наблюдения. Следовательно, модель освещения для одного источника определяется так:
I = Iaka + (Il/(d + K)) * (kd * (n' * L') + ks * (R' * S')n).

Попробуйте сами составить простую модель освещения. Предположим, что на первом рисунке в точке падения луча L векторы нормали, падающего света и наблюдения такие:
n = j
L = -i + 2j - k
S = i + 1.5j + 0.5k.
Пусть на сцене находится только один объект, d = 0, К = 1 и интенсивность источника будет в 10 раз больше, чем интенсивность рассеянного света, то есть Ia = 1, а Il = 10. Объект имеет блестящую металлическую поверхность, поэтому в основном свет будет отражаться зеркально. Пусть ks= 0.8, ka = ks = 0.15 и n = 5. Заметим, что ks + kd = 0.95, то есть 5% энергии источника поглощается. Ответ на эту задачу смотрите здесь.

Дополнительное чтение

Тени

Скачать Скачать Stratum-проект «Моделирование освещенности» [light.spj, 14 Кб]
Лекция 23. Диффузное отражение Лекция 25. Аппроксимация света...