阴影中的人工制品,使用标准的 MeshPhongMaterial
Artifacts in shadows, using standard MeshPhongMaterial
我遇到了关于阴影的问题。
这是我面临的问题的图片:
我不明白为什么那里有那些线,它应该是完全亮着的!我不明白为什么实际的阴影看起来真的很平滑,而且边界对于我想要做的事情来说已经足够好了,但后来我到处都是这些线。
我的灯光配置:
var dirLight = new THREE.DirectionalLight(0xfeffaf, 1);
dirLight.position.set(dimensions.middlePoint.x,
dimensions.middlePoint.y + ( dimensions.lengthY / 2),
dimensions.middlePoint.z + dimensions.lengthZ);
dirLight.target.position.set(
dimensions.middlePoint.x,
dimensions.middlePoint.y,
dimensions.minZ);
dirLight.castShadow = true;
dirLight.shadowDarkness = 0.4;
dirLight.shadowMapWidth = 1024;
dirLight.shadowMapHeight = 1024;
dirLight.shadowCameraNear = 1;
dirLight.shadowCameraFar = dimensions.lengthY * 2;
dirLight.shadowCameraLeft = - dimensions.lengthX / 2;
dirLight.shadowCameraRight = dimensions.lengthX / 2;
dirLight.shadowCameraTop = dimensions.lengthY / 2;
dirLight.shadowCameraBottom = -dimensions.lengthY / 2;
dirLight.shadowBias = 0.0000005;
scene.add(dirLight);
然后是我的渲染配置:
threeRender = new THREE.WebGLRenderer({ antialias: true });
threeRender.shadowMap.enabled = true;
threeRender.shadowMap.renderReverseSided = false;
threeRender.shadowMapSoft = true;
threeRender.shadowMapType = THREE.PCFSoftShadowMap;
请告诉我如何解决这个问题,并为我指出正确的解决方法。非常感谢。
增加你的价值shadowBias
。神器号称暗影痘痘:
有关详细信息,请参阅 this link。
我遇到了关于阴影的问题。 这是我面临的问题的图片:
我不明白为什么那里有那些线,它应该是完全亮着的!我不明白为什么实际的阴影看起来真的很平滑,而且边界对于我想要做的事情来说已经足够好了,但后来我到处都是这些线。
我的灯光配置:
var dirLight = new THREE.DirectionalLight(0xfeffaf, 1);
dirLight.position.set(dimensions.middlePoint.x,
dimensions.middlePoint.y + ( dimensions.lengthY / 2),
dimensions.middlePoint.z + dimensions.lengthZ);
dirLight.target.position.set(
dimensions.middlePoint.x,
dimensions.middlePoint.y,
dimensions.minZ);
dirLight.castShadow = true;
dirLight.shadowDarkness = 0.4;
dirLight.shadowMapWidth = 1024;
dirLight.shadowMapHeight = 1024;
dirLight.shadowCameraNear = 1;
dirLight.shadowCameraFar = dimensions.lengthY * 2;
dirLight.shadowCameraLeft = - dimensions.lengthX / 2;
dirLight.shadowCameraRight = dimensions.lengthX / 2;
dirLight.shadowCameraTop = dimensions.lengthY / 2;
dirLight.shadowCameraBottom = -dimensions.lengthY / 2;
dirLight.shadowBias = 0.0000005;
scene.add(dirLight);
然后是我的渲染配置:
threeRender = new THREE.WebGLRenderer({ antialias: true });
threeRender.shadowMap.enabled = true;
threeRender.shadowMap.renderReverseSided = false;
threeRender.shadowMapSoft = true;
threeRender.shadowMapType = THREE.PCFSoftShadowMap;
请告诉我如何解决这个问题,并为我指出正确的解决方法。非常感谢。
增加你的价值shadowBias
。神器号称暗影痘痘:
有关详细信息,请参阅 this link。