我在three.js中使阴影工作时遇到了麻烦。在下图中,您可以看到聚光灯在具有平面几何形状的对象上投射阴影。在平面附近的聚光灯和墙壁的平面几何形状之间没有物体。
什么可能导致这种行为?
灯光以这种方式配置:
var spotLight = new THREE.SpotLight(0xFFFFFF, 1);
spotLight.position.set(0, -20, 100);
spotLight.target.position.set(0,0,0);
spotLight.shadowDarkness = 0.5;
spotLight.shadowCameraVisible = true;
spotLight.castShadow = true;
spotLight.shadowMapWidth = 1024;
spotLight.shadowMapHeight = 1024;
spotLight.shadowCameraNear = 10;
spotLight.shadowCameraFar = 200;
spotLight.shadowCameraFov = 10;
spotLight.shadowBias = 0.1;
scene.add(spotLight);
矩形网格BufferGeometries
从PlaneGeometries
转换为png uv映射图像作为纹理,.receiveShadow
设置为true
。
THREE.js版本r71。
非常感谢任何帮助。
答案 0 :(得分:1)
也许是自我遮蔽,尝试使用spotLight.shadowBias
。通常,使用0.05的值来避免自阴影。