Size: a a a

pro.graphon (and gamedev)

2020 April 29

ML

Maksim Litvinov in pro.graphon (and gamedev)
кек
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
топкек))
источник

KP

Konstantin Pail in pro.graphon (and gamedev)
Alexander Busarov
F - это и есть этот параметр. А доказательства такие, что белое зеркало вернет в 2 раза больше света, чем на него упадёт.
Нашел, на что нужно умножать диффузный свет http://www.cs.utah.edu/~michael/brdfs/jgtbrdf.pdf (формула 5) вроде заработало. Не знаю правда, насколько энергия сохраняется. microfacet brdf не поддерживает multiple scattering, поэтому никак и не проверить:(
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Konstantin Pail
Нашел, на что нужно умножать диффузный свет http://www.cs.utah.edu/~michael/brdfs/jgtbrdf.pdf (формула 5) вроде заработало. Не знаю правда, насколько энергия сохраняется. microfacet brdf не поддерживает multiple scattering, поэтому никак и не проверить:(
ну всё правильно, это  1 - F
источник

KP

Konstantin Pail in pro.graphon (and gamedev)
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
бро, ты если посмотришь внимательнее, то вот это телега и есть аппроксимация шлика, только в развернутом виде :)
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
только вот насчет коэффициента 28/23 - не могу точно сказать откуда эти цифири
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
и в коде собственно ты уже считаешь шлика, и всю эту бороду считать по второму разу тебе не нужно
источник

KP

Konstantin Pail in pro.graphon (and gamedev)
Alexander Busarov
ну всё правильно, это  1 - F
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
понятия не имею зачем они тоже шлика по второму разу считают
источник

KP

Konstantin Pail in pro.graphon (and gamedev)
Там не шлик. По крайней мере F0 нигде не фигурирует
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Rs - это и есть F0
источник

KP

Konstantin Pail in pro.graphon (and gamedev)
Да, но формула то другая
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
где другая то?
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Konstantin Pail
Да, но формула то другая
Вот есть аппроксимация Шлика:
F(k*h) = Rs + (1 - Rs) * (1 - (k*h)) ^ 5;
пусть: (1 - (k*h)) ^ 5 = T
тогда:
F(k*h) = Rs + (1 - Rs) * T;

найдем: F'(k*h) = 1 - F(k*h)
F'(k*h) = 1 - Rs - (1 - Rs) * T ,
F'(k*h) = 1 - Rs - 1 + Rs * T ;
F'(k*h) = (1 - Rs) - (1 - Rs) * T ;
F'(k*h) = (1 - Rs)*(1 - T) ;

Подставим вместо T наше выражение:
F'(k*h) = (1 - Rs)*(1 - (1 - (k*h)) ^ 5) ;
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
собственно получили очень похожий кусок, но да, у них функция немного другая, т.к. шлик считается относительно h вектора, а они зачем-то посчитали его отдельно для каждого из направлений
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
и меня очень интересует вопрос почему они так сделали, а так же интересует вопрос откуда у них 28/23 коэффициент взялся
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
к сожалению их пейпер вообще ничего не объясняет
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
и вообще физический смысл F - это как раз получить долю света, который отразился от поверхности, и логично, что (1 - F) в этом случае - это взаимодействие с альбедо и переизлучение
источник