Показать сообщение отдельно
Старый 06.09.2011, 13:18   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: 2D освещение

Я бы сделал как, можно даже с бампом (и это просто).

Рендеришь слой уровня в отдельную текстуру, чтобы вот она была, уже как бы готова для рисования на экран, рисуешь затенённую (цвета амбиента).

Далее, для каждого источника, создаёшь квад размером с источник, и натягиваешь эту текстуру уровня используя screen-space координаты (это можно realtime в шейдере просто очень вычислить), далее рисуешь её, только умножая на цвет источника света, и инвертированную дистанцию. А именно, должно быть в центре 1.0, а ближе к краям 0. Этот квад который рисуешь, рисуй с блендом ADDITIVE (или как там он, ну который засветляет), и будет чики пуки.
Главное учти, что нужно отрисовать уровень либо с альфой, либо делать маску для этого дела.

Таким образом 20 источников будет ваще сказка и просто рисовать, также можно сделать красивый бамп.

UPD:
Вот примеры качества что делал, можно по разному считать дистанцию, и применять математическую градацию, можно и блики сделать, по 10 источников на каждой картинке, на оффисном старом компе, летало.




(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FireOwl (06.09.2011)