Записки программиста Программирование и не только

13Янв/100

Проецирование тени на плоскость. Бесконечно удаленный источник света.

Есть два случая расчета проекции - при источнике света вблизи объекта и когда источник бесконечно удален.

Рассмотрим сперва второй случай.


В случае бесконечно удалённого источника света мы предполагаем, что лучи света, приходящие к объекту, полностью параллельны. Это позволит нам решить уравнение проекции только раз и применять полученное решение ко всем вершинам объекта.

undefined

Общая постановка задачи:

Имея точку источника света (xS, yS, zS) и вершину объекта (xP, yP, zP) , мы хотим получить проекцию вершины объекта на плоскость z=0, т.е. точку тени (x5, y5, z5).

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

решая это уравнение относительно x5, получаем:

если принять, что L это вектор из точки P к источнику света, то точку S можно выразить как S = P - aL (3)

т.к. мы производим проекцию на плоскость z=0, то уравнение (3) можно переписать в следующем виде: 0 = zp - azs (4) или a = zp / zs (5)

решая (3) относительно x5 и y5, получаем:

Теперь имея координаты точки P в мировом координатном пространстве, можно получить её проекцию на плоскость z=0 просто путём умножения на матрицу М5: S = M5 * P (8)

Статья скопирована отсюда: http://rusgraf.ru/graf/7_3.htm

Метки записи: Оставить комментарий
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Trackbacks are disabled.