Показать сообщение отдельно
Старый 21.02.2015, 18:01   #3
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Примитивное освещение

По моему в данном случае всё проще и можно расчёты выполнить не выходя за рамки пикселей и 2д.
Берётся много лучей и бросается от источника света во все стороны, так чтобы их плотность была оптимальной для данного разрешения изображения (этот шаг делаем в уме). Теперь берём и производим вдоль каждого луча выборку из текстуры (данного ч/б изображения) шагами с определённой длинной (опять же обусловленной разрешением изображения). Затем мы (этот шаг тоже можно представить в уме) разворачиваем все лучи параллельно друг другу. Теперь перебираем пиксели каждого луча от начала до конца, изображение у нас ч/б, где черный пиксель это препятствие, как только попадется первый черный пиксель -- все остальные можно смело закрашивать чёрным -- это будет тень. Затем представим что все лучи обратно разворачиваются на своё место. Новые полученные цвета записываем обратно по своим координатам и смешиваем с цветным изображением. Понятно что лучи реально разворачивать не надо -- пиксели лежать в памяти линейно в виде массивов, это только чтобы образно лучше представлять что происходит.
(Offline)
 
Ответить с цитированием