Войти
ПрограммированиеФорумГрафика

[OpenGL]2d light?

Страницы: 1 2 3 Следующая »
#0
19:01, 15 авг 2014

Как создать свет на подобии этого? (без смены дня и ночи, просто свет):

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Я использую SFML. Как работать с GLSL вообще не понимаю... Точнее я понимаю что там происходит и какие шейдеры за что отвечают, но я не в состоянии писать свои...

#1
19:37, 15 авг 2014

Laynos
вообще легко гуглится на запрос "2d light", например
https://github.com/mattdesl/lwjgl-basics/wiki/ShaderLesson6

Если с шейдерами напряг, такой свет можно сделать тупо полупрозрачной маской (то есть берешь фотошоп, рисуешь круг , заливаешь нужным цветом с 128 альфой (или меньше/больше), а потом тупо как спрайт. так например делают в софте для создания карт. Но будут проблемы с тенями, да и свет статичный

вообще почитай https://github.com/mattdesl/lwjgl-basics/wiki - там все описано с позиции 2D, плюс есть неплохая вводная в шейдеры

#2
22:23, 15 авг 2014

war_zes
> Если с шейдерами напряг, такой свет можно сделать тупо полупрозрачной маской
> (то есть берешь фотошоп, рисуешь круг , заливаешь нужным цветом с 128 альфой
> (или меньше/больше), а потом тупо как спрайт. так например делают в софте для
> создания карт. Но будут проблемы с тенями, да и свет статичный
Пожалуй, это самое близкое, что я смогу сделать... Ну, допустим: есть у меня белый круг на прозрачном фоне. А как мне его наложить-то?
Мне правда очень сложно понять шейдеры, я ещё до них не дорос...

#3
22:26, 15 авг 2014

Просто у меня игрушка считайте что готова, хотелось бы для красоты свет реализовать. И я падаю в ступор, даже когда читаю уроки. Не мой уровень

#4
7:55, 16 авг 2014

Laynos
> Ну, допустим: есть у меня белый круг на прозрачном фоне. А как мне его
> наложить-то?
как любой спрайт (той же стены)... Но думаю лучше тогда рисовать не абстрактный круг, а источник света, например берешь стеной факел, и рисуешь полукруг спереди, и чуть меньший круг который будет ложится на стену.

#5
9:44, 16 авг 2014

war_zes
извините, но я Вас не очень понял...
В голове есть идея создать в Photoshop изображение с чёрным фоном и "отверстие" по середине с разным уровнем альфа по краям. Но мне кажется, что рендерить такую большую текстуру поверх остальных как-то странно...

#6
13:21, 16 авг 2014

Laynos
вам свет нужен или тени? просите свет, но на видео показаны тени - вы решите что что нужно

#7
17:37, 16 авг 2014

leonardo98
значит, мне нужны тени...

#8
17:47, 16 авг 2014
+ Показать
#9
18:39, 16 авг 2014

тени удобно рисовать отдельным буфером поверх всего остального, сформулируйте условия задачи, что есть, что нужно получить
сколько источников одновременно, есть ли пересечения их областей и т.п.

#10
18:49, 16 авг 2014

leonardo98
Нужно сделать класс Lamp("лампочка", "светило"). Каждая лампочка может светиться разными цветами (цвет задаётся в формате RGB) -> должно быть смешивание цветов при пересечении "окружностей ламп", если лампочек несколько. Так же у класса Lamp будет поле "r" ("радиус"), чтобы контролировать дальность света. В классе "GameCore" ("игровое ядро") хранится объект класса карты, в которой лежит информация обо всех объектах, лампочках и пр.
Нужно сделать так, чтобы лампочки светились и создавалась тень от объектов. Please, help... Мне бы простейший пример - я б порылся и может чего понял...

#11
18:53, 16 авг 2014

wawe
да, как-то так я и думал... В голове мелькает мысль найти объекты, которые пересекаются с окружностью лампы, и... всё. Я не знаю как их обрабатывать, ведь спрайты необязательно прямоугольные

#12
19:16, 16 авг 2014

найти объекты, которые пересекаются с окружностью лампы

Это зачем? Что это даст?
Простейший способ, который я знаю - центральная симметрия.

#13
19:59, 16 авг 2014

Laynos
свечение - это отдельный эффект, тень - другой, обратите внимание - на видео тень дают только определенные объекты, которые заданы геометрическими примитивами - это сделано чтобы задача имела хоть какое-то решение, у вас так же должно быть или там могут быть произвольные спрайты?

#14
20:24, 16 авг 2014

leonardo98
предпочтительнее, чтобы там могли быть произвольные спрайты... То есть освещение действует на все объекты одинаково...
Но если это довольно сложно сделать, то я согласен и на случай с заданием геом. примитивов... Мне самое главное - добиться похожего эффекта и вставить в игру...
Поможете примером? :(

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.