Ответ на этот вопрос настолько очевиден, что сам вопрос предполагает, что вы зашли слишком далеко во взломы 3D-графики и должны помнить, что все это на самом деле должно делать.
Карта теней - это способ определить, находится ли конкретное место на поверхности в тени относительно определенного источника света в сцене. Карта теней отвечает на вопрос: «Есть ли что-то твердое между точкой на поверхности и источником света?»
Если ответ на этот вопрос «да», то этот источник света не влияет на расчеты освещения для этой точки. Если ответ «нет», то это так.
Цвет точки на поверхности основан на входящем свете от всех источников света и характеристиках поверхности этой точки на поверхности (рассеянный цвет, зеркальное сияние, нормальность и т. Д.). Все вычисления для каждого источника света складываются друг в друга, чтобы получить окончательное значение цвета, которое представляет точка.
У вас, как правило, также есть различные хаки. Окружающий термин часто используется для обозначения большого количества непрямого освещения. Карты освещения могут заменить свет от других источников, которые вы не вычисляете динамически в шейдере. И так далее. Но, в конце концов, все они просто огни.
Ваше уравнение освещения принимает параметры освещения (цвет, направление / положение или только интенсивность окружающего освещения) и характеристики поверхности (как указано выше), а также количество света, отраженного от поверхности. Поскольку коэффициент отражения от одного источника света не зависит от коэффициента отражения от другого источника света, вы можете рассчитать его независимо для каждого источника света.
Все эти значения складываются вместе для получения окончательного значения.
Тот факт, что вы можете замкнуть вычисление одного из них с помощью теста карты теней, не имеет отношения к общей схеме. Просто добавьте различные термины освещения друг к другу, и это ваш ответ. Для этого нет «особой техники»; ты просто делаешь это.