Как реализовано 2D освещение?


58

Мне интересно, как лучше всего подойти к эффекту «освещения» в 2D играх. Например, если мой главный персонаж светится, какие методы я могу использовать, чтобы завершить визуальный эффект светящегося персонажа, когда он находится рядом с другими объектами, на которые воздействует свет?

Ответы:


39

Вы можете наложить простую текстуру с эффектом свечения на мягкие прозрачные края. Если вы хотите, чтобы освещение / тени были похожи на то, что вы можете найти в трехмерном мире, вы можете сделать что-то вроде этого: http://www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic -2d-тени / . Однако, если вы новичок в HLSL, то это может быть слишком много.

редактировать : я наткнулся на хороший учебник HTML5 2D Light


Эта ссылка именно то, что я искал. Я не могу отблагодарить тебя достаточно; это очень полезно.
Кристофер Хоренштейн

7

Существует проект XNA с открытым исходным кодом, представляющий собой отличную библиотеку и реализацию 2D-освещения, совместимого с профилем XNA 4.0 Reach - Krypton XNA .


4

Вам понадобится шейдерный эффект постфильтрации, написанный на HLSL или GLSL. Шейдер получит координаты игрока и изменит яркость для всех пикселей в определенном диапазоне. XNA поддерживает 2D шейдеры довольно неплохо.

Другим решением было бы моделировать яркость, используя текстуру с альфа-каналом. Текстура будет в основном черной, за исключением прозрачного пятна посередине. Эту текстуру мы накладываем на экран вашей игры с прозрачным пятном по центру «светящегося» персонажа игрока. Старые приключенческие игры использовали эту технику для имитации фонариков.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.