1
我有阴影在three.js工作的麻烦。在下面的图片中,您可以看到聚光灯在具有平面几何图形的物体上投射阴影。在靠近飞机的聚光灯和墙壁的平面几何之间没有任何物体。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。
任何帮助将非常感激。
感谢@ Ale_32,改变'.shadowBias'的值将自身阴影向上或向下移动一半,不会使它消失......我读过它与'.shadowCameraFov'值有关太小了......所以,这意味着如果没有这种自我阴影神器,你就不能创造出一盏小灯。 – user1398498
在这种情况下,使用'.shadowBias'的小_negative_值来减轻自我阴影伪影。 – WestLangley
您也可以尝试-0.05作为值...或者,您可以提高阴影贴图的z精度,减小光锥的大小 –