Three.js - добавление теней в область освещения с использованием отложенного рендеринга

Я использую WebGLDeferredRenderer для простой сцены (созданной кубом, имитирующим комнату и двумя маленькими кубиками для тестирования теней), но я не могу показать тени, сгенерированные из areaLight, используемого в сцене!

В этой демонстрации есть 3 области освещения, но ни один из них не генерирует тени над одним объектом (они просто освещают "комнату").

Есть ли какой-то конкретный шейдер, который я могу использовать для решения этой проблемы? Или лучше... есть ли шанс отбросить тень в отложенном рендеринге?:)

4 ответа

Решение

Тени в настоящее время не поддерживаются в three.js r.56 с использованием отложенного рендеринга с WebGLDeferredRenderer,

Вот два примера, где точечные источники света и точечные источники света отбрасывают тени с использованием отложенного рендеринга в three.js, но используют модифицированную версию библиотеки.

http://alteredqualia.com/three/examples/webgl_deferred_shadowmap.html

http://alteredqualia.com/three/examples/webgl_deferred_shadowmap_point.html

Тем не менее, пока нет примеров освещения.

То, что вы хотите, выполнимо, просто еще не поддерживается, и не с подсветкой.

three.js r.56

Я полагаю, что светлые тени на местах еще не реализованы, хотя кто-то, вероятно, работает над этим, так что это может быть возможно в будущем. Вы можете попытаться сделать это самостоятельно, но для этого потребуются серьезные навыки программирования, решить эту проблему непросто:)

Я думаю, что в настоящее время вы можете использовать точечные и направленные световые тени в отложенном рендерере, возможно, даже точечные световые тени.

Вы можете подделать тени, используя другой тип света с низкой интенсивностью только для теней, но это может выглядеть немного странно.

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

Используйте направленный или точечный свет. Площадь света не отбрасывает тени.

Другие вопросы по тегам