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

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

Учитывая, что 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 HttpWebRequest и HttpWebResponse работают на более высоком уровне, чем этот, и я хочу спросить, есть ли способ получить базовый объект TcpClient (или любой другой объект низкого уровня, который они используют).

Если это невозможно, то есть ли способ получить и управлять списком подключений, поддерживаемых .net, без получения его через HttpWebRequest или HttpWebResponse?

Я не могу изменить приложение, над которым я работаю, для использования TcpClient, потому что это потребовало бы слишком много времени для надежной реализации всего http.

5
задан Zane 3 January 2011 в 16:07
поделиться