Как использовать одну карту теней для нескольких точечных источников света?

Насколько я понимаю, теневое наложение выполняется путем рендеринга сцены с точки зрения света для создания карты глубины Затем вы перерендерите сцену с точки зрения камеры, и для каждой точки (фрагмента в GLSL) сцены высчитываете расстояние оттуда до источника света, если оно совпадает с тем, что у вас в карте теней, то это на свету, в противном случае это в тени

Я только что прочитал это руководство , чтобы получить представление о том, как делать карты теней с точечным/всенаправленным источником света.

В разделе В 12.2.2 сказано:

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

А затем в 12.3.6 сказано:

1) Вычислить квадрат расстояния от текущего пикселя до источника света.
...
4) Сравните рассчитанное значение расстояния с полученным значением карты теней, чтобы определить, находимся ли мы в тени.

Это примерно то, что я сказал выше.

Чего я не понимаю, так это того, что если мы объединили все источники света в одну карту теней, то с каким источником света нам нужно сравнивать расстояние? Расстояние, заложенное в карту, не должно ничему соответствовать, потому что это смесь всех источников света, не так ли?

Я уверен, что что-то упускаю, но, надеюсь, кто-нибудь сможет мне это объяснить.


Кроме того, если мы используем одну карту теней, как нам смешать ее для всех источников света?

Для одного источника света карта теней просто хранит расстояние до ближайшего объекта к источнику света (т. е. карта глубины), но что она будет содержать для нескольких источников света?

7
задан mpen 12 March 2012 в 02:49
поделиться