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
Я полагаю, что светлые тени на местах еще не реализованы, хотя кто-то, вероятно, работает над этим, так что это может быть возможно в будущем. Вы можете попытаться сделать это самостоятельно, но для этого потребуются серьезные навыки программирования, решить эту проблему непросто:)
Я думаю, что в настоящее время вы можете использовать точечные и направленные световые тени в отложенном рендерере, возможно, даже точечные световые тени.
Вы можете подделать тени, используя другой тип света с низкой интенсивностью только для теней, но это может выглядеть немного странно.
Я думаю, что вам нужно отодвинуть свой источник карты теней в зависимости от того, насколько велика область... вы также можете сглаживать глазное яблоко с процентной фильтрацией ближе в зависимости от того, как далеко вы должны отодвинуть заклинателя теней.
Используйте направленный или точечный свет. Площадь света не отбрасывает тени.