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

Свет проходит сквозь стены

Страницы: 1 2 Следующая »
#0
20:10, 7 авг 2024

Всем привет. У меня вопрос, я ещё до этого не дошел, но подумал, что если сделать обычный шейдер или pbr шейдер с освещением, то стены не будут помехой, так ведь? Можете подсказать как решается такая проблема? Нужно, чтобы свет освещал только свою область и не переходил за стену. Может название алгоритма. Метод. Пишу на opengl и c++. Может, это ретрейсинг называется?

#1
20:47, 7 авг 2024

archinaragu
Добавь тени.

#2
0:08, 8 авг 2024

При расчете освещения в точке, алгоритм как правило не знает никакой информации о всей сцене. Он лишь владеет параметрами источника света, параметрами материала и нормалью в точке. Чтобы свет не проходил сквозь стены(о которых световая модель ничего не знает, как я упомянул выше), ты должен так же считать затенённость, помимо освещённости и перемножаться их. Тогда, если точка в тени, ее затененнность будет 0, и все произведение будет 0, независимо от освещённости.

#3
0:17, 8 авг 2024

AMM1AK, боюсь твои объяснения не совсем будут понятны новичку, который с этим не сталкивался. )))

#4
0:27, 8 авг 2024

AMM1AK
Так, теория понятна. У меня есть в книге примеры того, как делать тень. Ещё вопрос, чтобы произведение было равно нулю, то получается, что тень ото объекта имеет такую же силу света, который попадает на пол? Я как-то раньше делал тень, но уже не помню ничего из этого. Я так понимаю, что затененность не нужно явно перемножать в шейдере, так как они просто будут складываться сначала тень, потом свет, или сначала свет, потом тень. Что ж, если я правильно понял, то спасибо.

#5
2:17, 8 авг 2024

Тоесть если шейдер цвета объекта простой, то тень сделать легче, чем если материал будет PBR?

#6
3:36, 8 авг 2024

archinaragu
> Пишу на opengl и c++.
Есть уроки по opengl и там есть урок про тени. Там все неплохо расписано,для начала ознакомься с ним.

#7
4:13, 8 авг 2024

MikeNew
На этом сайте есть? Хорошо, посмотрю. Ещё в книге своей посмотрю. Спасибо.

#8
9:32, 8 авг 2024

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

Сообщение 5945378 не найдено
#9
16:38, 8 авг 2024

archinaragu
> Нужно, чтобы свет освещал только свою область и не переходил за стену. Может название алгоритма. Метод.
Pathtrace, например. Реализован в киберпанке. Требует топовую видяху.

#10
17:30, 8 авг 2024

AMM1AK
> При расчете освещения в точке, алгоритм как правило не знает никакой информации о всей сцене.

А всю и не надо. Вон какой элегантный костыль в движке 15-летней давности:

+ Показать
#11
18:25, 8 авг 2024

Вот что подумалось. Может как-то можно рассчитывать освещенность сцены с помощью нейросети. Натренировать ее для начала на сценах с обычными тенями, а потом пустить в свободное плавание.
Что думаете? Реально такое?

#12
20:51, 8 авг 2024

iw4nna.rock
чем отличается от лайтмапов? переучиванием?

#13
21:18, 8 авг 2024

fake.pdf
> чем отличается от лайтмапов? переучиванием?
есть примитивы, источник света. Примитивы подаются на входной слой нейросети, на выходном слое получаем карту тени. И всё это в динамике.

#14
0:21, 9 авг 2024

iw4nna.rock
А зачем? Есть уже изобретённый велосипед, как считать тень. Нейронки используются там, где нет конкретного алгоритма.

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