three.js 阴影截断

8
正如标题所述。 当我渲染当前场景时,一切都正常。 只有白色猴子的阴影被截断了。 这是怎么发生的,是否有解决方法?
这里是网站:http://hammer.bz/test/ 和一个屏幕截图;)
http://i.stack.imgur.com/6jd0h.png 我猜这可能与相机或灯光有关。 所以这是它们:
renderer.shadowMapEnabled   = true;
renderer.sortObjects = false;
renderer.shadowMapWidth = 3072;
renderer.shadowMapHeight = 3072
renderer.shadowCameraNear = 2;
renderer.shadowCameraFar = 40000;
renderer.shadowCameraFov = 50;
renderer.shadowMapBias = -0.00022;
renderer.shadowMapDarkness = 0.55;
renderer.shadowMapSoft      = true;
renderer.physicallyBasedShading = true;
renderer.setClearColorHex( 0x999999, 1 );


camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.1, 40000 );
camera.position.x = x;
camera.position.y = y;
camera.position.z = z;  
camera.rotation.x = -0.8;
scene.add( camera );


var light = new THREE.DirectionalLight( 0xffffff, 1 );
light.position.set( -2, 5, 2 ).normalize();
light.shadowCameraNear  = 0.01;
light.shadowCameraFar   = 1000000;
light.castShadow        = true;
light.shadowDarkness        = 0.5;
light.shadowCameraVisible   = false;
scene.add( light );

提前感谢!
Bram

编辑:已解决:

只需使用THREE.SpotLight即可。 这是一个愚蠢的问题。

只需打开shadowCameraVisible = true;以查看光线,并且它将起作用。 现在为这个问题感到有点愚蠢哈哈;)


1
很高兴你解决了问题!永远不要因为问一个简单答案的问题而感到愚蠢。我无法告诉你有多少次我在输入 Stack Overflow 问题或发布问题后立即解决了自己的问题。我建议将你的发现作为答案添加到这个问题中,然后在必要的24小时等待后将其标记为已接受的答案。这有助于其他人在未来识别问题是否已经解决。 - Toji
1个回答

5

只需使用THREE.SpotLight即可。

shadowCameraVisible = true;打开以查看灯光,它就会起作用。 当然,您需要设置位置:position.set(x, y, z);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接