Javascript 3.js奇数条纹阴影
问题的表现形式如下: 以下是我的灯光设置:Javascript 3.js奇数条纹阴影,javascript,three.js,Javascript,Three.js,问题的表现形式如下: 以下是我的灯光设置: const LIGHT_POSITION = 50; let light = new THREE.DirectionalLight(0xddffdd, 1); light.position.z = LIGHT_POSITION; light.position.y = -LIGHT_POSITION * 2; light.position.x = -LIGHT_POSITION; light.shadowCam
const LIGHT_POSITION = 50;
let light = new THREE.DirectionalLight(0xddffdd, 1);
light.position.z = LIGHT_POSITION;
light.position.y = -LIGHT_POSITION * 2;
light.position.x = -LIGHT_POSITION;
light.shadowCameraFov = 60;
light.shadow.mapSize.x = 1024;
light.shadow.mapSize.y = 1024;
scene.add(light);
let light2 = new THREE.DirectionalLight(0xffdddd, 1);
light2.position.z = LIGHT_POSITION;
light2.position.x = -LIGHT_POSITION;
light2.position.y = LIGHT_POSITION * 2;
light2.shadow.mapSize.x = 1024;
light2.shadow.mapSize.y = 1024;
scene.add(light2);
let light4 = new THREE.AmbientLight(0xBBBBBB, 0.3);
scene.add(light4);
this.material = new THREE.MeshStandardMaterial({color: 0xffffff,
morphTargets: true,
morphNormals: true,
roughness: 0.8,
metalness: 0.3
});
this.model = new THREE.Mesh(this.geometry, this.material);
this.model.castShadow = true;
this.model.receiveShadow = true;
和我的网格设置:
const LIGHT_POSITION = 50;
let light = new THREE.DirectionalLight(0xddffdd, 1);
light.position.z = LIGHT_POSITION;
light.position.y = -LIGHT_POSITION * 2;
light.position.x = -LIGHT_POSITION;
light.shadowCameraFov = 60;
light.shadow.mapSize.x = 1024;
light.shadow.mapSize.y = 1024;
scene.add(light);
let light2 = new THREE.DirectionalLight(0xffdddd, 1);
light2.position.z = LIGHT_POSITION;
light2.position.x = -LIGHT_POSITION;
light2.position.y = LIGHT_POSITION * 2;
light2.shadow.mapSize.x = 1024;
light2.shadow.mapSize.y = 1024;
scene.add(light2);
let light4 = new THREE.AmbientLight(0xBBBBBB, 0.3);
scene.add(light4);
this.material = new THREE.MeshStandardMaterial({color: 0xffffff,
morphTargets: true,
morphNormals: true,
roughness: 0.8,
metalness: 0.3
});
this.model = new THREE.Mesh(this.geometry, this.material);
this.model.castShadow = true;
this.model.receiveShadow = true;
你知道为什么阴影会以这种方式显现吗?你看到的是由于
mesh.castShadow
和mesh.receiveShadow
设置为true而产生的自阴影瑕疵。
您需要调整light.shadow.bias
参数——接近零的正值或负值,例如-0.01
改变阴影偏移会导致“彼得平移”和自阴影瑕疵之间的权衡
3.js r.90