我是三个j的新手,我可以使用聚光灯生成阴影,但我也收到不必要的阴影。我需要做些什么来消除不需要的阴影。我只需要汽车和墙壁的阴影,我需要删除地面上的矩形像阴影。
我的代码如下
var ambientLight = new THREE.AmbientLight( 0xffffff );
scene.add( ambientLight );
var light1 = new THREE.SpotLight(0xff00000);
light1.position.set(200, 1200, 0);
light1.target.position.set(0,0,0);
light1.shadowCameraVisible = true;
light1.castShadow = true;
light1.shadowDarkness = 0.8;
light1.shadowCameraNear = 400;
light1.shadowCameraFar = 1600;
//light1.shadowCameraFov = 30;
light1.shadowCameraLeft = -750;
light1.shadowCameraBottom = -500;
light1.shadowCameraRight = 1000;
light1.shadowCameraTop = 600;
var firstLight = new THREE.Object3D();
firstLight.add(light1);
scene.add(firstLight);
提前致谢
答案 0 :(得分:0)
我看到你想要对象的选择性阴影进行性能调整。 您可以做的最好的是汽车模型,你有 .obj, .dae或者你曾经可以通过THREE.Object3D将对象加载到场景的格式加载器,它具有属性" castShadow&#34 ;。试试这个:
var obj3D = new THREE.Object3D();
obj3D.add(/*content from loader*/);
obj3D.castShadow = true;
or
var mesh = new THREE.Mesh();
mesh.castShadow =true;
也可以使用Mesh启用或禁用castShadow属性。
我认为这可以解决你的问题