如何改变three.js中物体投射阴影的强度?目前,半透明材料会产生与不透明物体一样强烈的阴影。显然,我希望半透明的人不会投下如此强烈的阴影。
答案 0 :(得分:3)
使用WebGLRenderer
在three.js中投射阴影时,从灯光的角度来看,对象被视为实心和非半透明。
通过将light.shadowDarkness
设置为[0,1]范围内的值,您可以在每个灯光的基础上控制阴影强度。
three.js r.64
编辑:自from.js r.74起不再支持light.shadowDarkness
。您可以为场景添加环境光以进行补偿。
three.js r.75
答案 1 :(得分:0)
在同一位置创建两个点光源,一个投射阴影,另一个不投射阴影。通过使阴影光变暗,可以创建柔和的阴影。
在下面的示例中请注意,两个指示灯均处于-100,200,200的位置。从该位置发出的光的总强度为0.9,但投射阴影的光仅为0.2。
var shadowLight = new THREE.PointLight(0xffffff, 0.2);
shadowLight.position.set(-100,200,100);
shadowLight.castShadow = true;
shadowLight.shadow.mapSize.width = 2048;
shadowLight.shadow.mapSize.height = 2048;
scene.add(shadowLight);
var light = new THREE.PointLight(0xfffff3, 0.7);
light.position.set(-100,200,100);
scene.add(light);