js导入对象不正确的阴影渲染

Three.js imported obj incorrect shadow rendering

本文关键字:阴影 不正确 导入 对象 js      更新时间:2023-09-26

我从blender中导入了一个对象,设置它的每个网格投射和接收阴影,但是渲染的阴影是不正确的。我还合并了物体的网格,认为这将解决问题,但结果是一样的。当使用side: THREE时,问题似乎得到了解决。双面,但这会使材料变暗。

<<p> 光设置/strong>
light = new THREE.DirectionalLight( 0x666666, 1 );
light.position.set(  2*400, 2*300.75, 2*400);
light.position.multiplyScalar( 1.3 );
light.castShadow=true;
light.shadowMapWidth = 2048;
light.shadowMapHeight =2048;
var d = 1300;
light.shadowCameraLeft = -d;
light.shadowCameraRight = d;
light.shadowCameraTop = d;
light.shadowCameraBottom = -d;
light.shadowCameraFar = 10000;
light.shadowBias = 0.0001;
light.shadowDarkness = 0.5;
<<p> 材料设置/strong>
var childTilesTexture = THREE.ImageUtils.loadTexture('texture/wood_t.jpg?v1');
childTilesTexture.wrapS = childTilesTexture.wrapT = THREE.RepeatWrapping;
child.material = new THREE.MeshPhongMaterial( { map:childTilesTexture, shininess:5, metal: false} );

https://i.stack.imgur.com/bsKnU.jpg

另一个截图

正如你所看到的,手柄在对象框中投射了一个阴影。

https://i.stack.imgur.com/aLMgL.jpg

属性shadowBias可用于修复自阴影问题。试着改变它。

尝试小的负值和小的正值。

three.js r.71