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