Правильная модель для затенения в трассировке лучей

Мне интересно, как наиболее точно рассчитать тень, создаваемую несколькими разными источниками света и окружающим светом. Окружающий свет - это свет, который существует во всем «мире» с одинаковой интенсивностью и без определенного направления, а рассеянное освещение - это освещение, возникающее из-за прямого освещения от точечного источника света.

Учитывая, что Ka - коэффициент отражательной способности поверхности окружающей среды, Ia - интенсивность окружающего света, Kd - диффузная отражательная способность поверхности, Ip1 - интенсивность первого (соответственно) точечного источника света, N - нормаль к поверхности и L1 - направление света (соответственно первого источника).

Согласно моему справочному материалу, интенсивность цвета в пятне должна быть:

I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2)), где "." - скалярное произведение.

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

I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))/2

и если есть 3 источника света, но третий заблокирован и не освещает поверхность напрямую, то:

I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))/3 (так что если есть место, где участвуют все 3 источника света, оно будет светлее ярче.

Прав ли я в своем предположении?


person SIMEL    schedule 03.01.2011    source источник


Ответы (3)


Ну нет, свет усреднять не надо. Подумай об этом. Если у вас есть только один мощный источник света, и вы добавите еще один, очень слабый свет, не изменится ли цвет объекта? Например, скажем, сильный свет имеет интенсивность 10, цвет (при условии, что направление перпендикулярно нормали и отсутствие окружающего света, для простоты) будет 10. Затем, после того, как вы добавите второй слабый свет, скажем, с интенсивностью 0,1 цвет будет (10 + 0,1) / 2, что равно 5,05. Таким образом, добавление большего количества света сделает объект темнее. Это не имеет смысла.

person Andrei Fierbinteanu    schedule 03.01.2011
comment
В крайнем случае, если у вас бесконечное количество источников света, у вас будет нулевой чистый свет, если вы усредните его. Светильники независимы друг от друга. - person Ron Warholic; 03.01.2011

В реальном мире свет добавляет. Он тоже должен быть в вашем трассировщике лучей.

person Larry Gritz    schedule 03.01.2011

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

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

person Nick    schedule 03.01.2011