2

我是三个 js 的新手,我可以使用聚光灯生成阴影,但我也会收到不必要的阴影。我需要做些什么来移除不需要的阴影。我只需要汽车和墙壁的阴影,我需要移除像地面上的矩形一样的阴影。在此处输入图像描述

我的代码如下

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);

提前致谢

4

1 回答 1

0

我看到你想要选择性的对象阴影来进行性能调整。您可以做的最好的事情是对于汽车模型,您可以拥有.obj、 .dae 或任何格式加载器,您可以通过具有属性“castShadow”的 THREE.Object3D 将对象加载到场景中。试试这个:

var obj3D = new THREE.Object3D();
obj3D.add(/*content from loader*/);
obj3D.castShadow = true;
or
var mesh = new THREE.Mesh();
mesh.castShadow =true;

也可以使用 Mesh 启用或禁用 castShadow 属性。

我认为这可以解决您的问题

于 2015-06-06T15:15:44.130 回答