2013-09-27 3 views
5

Я играл с three.js здесь - 2toria.com/poolТРИ. Js тени - как улучшить?

Проблема, с которой я сталкиваюсь, пытается заставить мои тени выглядеть лучше. На данный момент они выглядят следующим образом: -

enter image description here

Немного зернистые. Есть ли способ, что я могу сделать их выглядеть более гладкой, как здесь: -

enter image description here

Я попробовал несколько вещей, но я не могу найти правильные настройки. Мой рендерер настроен так: -

renderer.shadowMapEnabled = true; 
renderer.shadowMapSoft = true; 
renderer.shadowMapType = THREE.PCFShadowMap; 

Я думал shadowMapSoft сделал бы это, но нет. Любые идеи/помощь?

ответ

10

Действительно, у меня была та же проблема. Мое исправление заключалось в том, чтобы увеличить источники света shadowMapWidth и Height. В моем случае это был прожектор:

spotLight = new THREE.SpotLight(0xAAAAAA); 
spotLight.castShadow = true; 
spotLight.shadowCameraFov = VIEW_ANGLE; 
spotLight.shadowBias = 0.0001; 
spotLight.shadowDarkness = 0.2; 
spotLight.shadowMapWidth = 2048; 
spotLight.shadowMapHeight = 2048; 

О еще одна вещи, если увеличить размер карты по электроинструменту два вы сглаживать тень все больше и больше, но вы увидите падение производительности со сложной геометрией. Поэтому попробуйте 2048, может быть, 4096 посмотреть, как они работают на вас.

Я заметил, что у вас есть renderer.shadowMapType. Мне нужно заглянуть в это, может сделать мои собственные проекты намного лучше, спасибо :)

+0

Этот ответ с 2013 года, вероятно, будет основан на r55 - r64. Вам известно, как смягчить тень в r87? –

Смежные вопросы