Latex formulas

пятница, 10 февраля 2012 г.

Немного о тенях от точечного источника

Ничего не нашел лучше, чем посчитать карту теней статически, а потом загружать её вместе с уровнем.

Подсчет производить будем "в лоб": для каждого источника с координатами (x0, y0, z0) и для каждой точки на карте (x1, y1, z1) напишем уравнение луча, соединяющего их. Для координаты x:



Для остальных координат уравнение аналогичное. Теперь, двигаясь по лучу от источника освещения к точке на карте (в цикле по t от 0 до 1) делаем проверку

if (map[y][x]>z) установить_тень(x1,y1);


То есть, если на пути света стоит "гора" достаточной высоты, чтобы затмить свет, в точке, куда шел луч тень. Пока прикладываю программу по просчету теней и мира, так как чтобы это грамотно прорисовать нужно научится правильному смешению цветов и фильтрации. Об этом позже. Вот программа:

Открыть спойлер

Комментариев нет:

Отправить комментарий