Мне интересно, как лучше всего подойти к эффекту «освещения» в 2D играх. Например, если мой главный персонаж светится, какие методы я могу использовать, чтобы завершить визуальный эффект светящегося персонажа, когда он находится рядом с другими объектами, на которые воздействует свет?
xna
2d
lighting
graphic-effects
Кристофер Хоренштейн
источник
источник
Существует проект XNA с открытым исходным кодом, представляющий собой отличную библиотеку и реализацию 2D-освещения, совместимого с профилем XNA 4.0 Reach - Krypton XNA .
источник
Вам понадобится шейдерный эффект постфильтрации, написанный на HLSL или GLSL. Шейдер получит координаты игрока и изменит яркость для всех пикселей в определенном диапазоне. XNA поддерживает 2D шейдеры довольно неплохо.
Другим решением было бы моделировать яркость, используя текстуру с альфа-каналом. Текстура будет в основном черной, за исключением прозрачного пятна посередине. Эту текстуру мы накладываем на экран вашей игры с прозрачным пятном по центру «светящегося» персонажа игрока. Старые приключенческие игры использовали эту технику для имитации фонариков.
источник
После некоторых поисков этот блог показался мне хорошим началом:
http://www.soolstyle.com/2010/02/15/2d-deferred-lightning/
Обязательно прочтите комментарии, потому что там есть некоторые улучшения, но пост в блоге поможет вам начать :).
источник