Проецирование тени на плоскость. Бесконечно удаленный источник света.
Есть два случая расчета проекции - при источнике света вблизи объекта и когда источник бесконечно удален.
Рассмотрим сперва второй случай.
В случае бесконечно удалённого источника света мы предполагаем, что лучи света, приходящие к объекту, полностью параллельны. Это позволит нам решить уравнение проекции только раз и применять полученное решение ко всем вершинам объекта.
Общая постановка задачи:
Имея точку источника света (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
Leave a comment