ThreeJs的学习:阴影的产生

要产生阴影,需要在三个地方设置属性,

光源、物体、地板

    光源和物体设置castShadow = true;

    地板设置receiveShadow = true;

例子:

    1. 光源:

    var pointLight = new THREE.PointLight( 0xffffff, 0.8 );
    pointLight.position.set(50, 60, 50);
    pointLight.castShadow = true;

    2. 物体

    物体是指建立在地板上的任何东西。

    var mesh = new THREE.Mesh(bufferGeometry, new THREE.MeshBasicMaterial({ color: Math.random() * 0x00ffff } ))
    mesh.castShadow = true; // 产生阴影
    mesh.receiveShadow = true; // 接受阴影

    3.地板

    var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial(  { side: THREE.DoubleSide, map: texture }  ) );
    mesh.receiveShadow = true;

    4. 柔和的阴影

    发现前三步产生的阴影比较生硬,那就再加一个光源:AmbientLight。
    var ambientLight = new THREE.AmbientLight( 0xffffff );
    scene.add(ambientLight)

 

一些人说是不是所有的光源或所有的材质都可以引起阴影,或者有些操作会让阴影消失。
上面的AmbientLight确实没有castShadow属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值