Зеркальное отражение от блестящей поверхности

Рис. 8.12. Зеркальное отражение от блестящей поверхности На рис. 8.12, в показано, как оценить влияние пучка. Из главы 4 нам известно, что направление г полного отражения зависит от вектора в и нормали ш к поверхности следующим образом"images/tmp8E4A-530.png">

где множитель ps называется коэффициентом зеркального отражения (specular reflection coefficient). Подобно большинству других коэффициентов в модели закрашивания, он обычно определяется экспе8,2. Введение в модели закрашивания рименталыю. (Как и в случае диффузного члена, при отрицательном скалярном произведении г V значение / устанавливается равным нулю).

Уменьшение отраженного света с ростом абсолютной величины угла

Рис. 8.13. Уменьшение отраженного света с ростом абсолютной величины угла Повышение эффективности с помощью «промежуточного вектора». Вычисление члена уравнения (8.3), соответствующего зеркальному отражению, может оказаться слишком дорогостоящим, поскольку при этом требуется вначале найти вектор г, а затем нормировать его. На практике для ускорения вычислений используется альтернативный член зеркального отражения, который, вероятно, впервые был описан Блинном [Blinn, 24] и используется для ускорения вычислений. Вместо косинуса угла между векторами г и v ищется промежуточный (halfway) вектор между s и V, то есть h = s + v, как показано на рис. 8.14. Если бы нормаль к поверхности была направлена вдоль вектора h, то наблюдатель увидел бы наиболее яркий зеркальный блик. Поэтому угол 3 между векторами m и h можно использовать для измерения спада интенсивности зеркального отражения, которую видит наблюдатель. Угол 3 не совпадает с углом ф (на самом деле угол 3 вдвое больше, чем ф, если все векторы компланарны; см. упражнения), однако это различие может быть компенсировано использованием другого значения показателя/. (Зеркальный член никоим образом не основывается на физических принципах, поэтому по меньшей мере приятно, что такая его коррекция дает приемлемые результаты.) Обычно принято при вычислении зеркального члена исходить из cos(3), используя при этом скалярное произведение векторов h и т"opengl1_528.html">⇐ Предыдущая| |Следующая ⇒