Three.JS 添加灯光、材质和阴影(第一个例子)

three.js中都多种灯光和材质,这里只是添加了一种灯光,聚光灯spotLight。

首先构建一个spotLight对象:

var spotLight = new  THREE.SpotLight(0xFFFFFF);

指定光源的位置,从何处开始照射:

spotLight.position.set(-40,60,-10);

把光源变量加入到场景:

scene.add(spotLight);

材质:MeshBasicMaterial是基本的材质模型,它对光源产生任何反应。
MeshLambertMaterial 材质和MeshPhongMaterial材质会对光源产生反应。具体的区别不太了解。如果要物体对光照产生反应,把材质改为上述中的一种。

把第一个例子中的立方体的材质修改为 MeshLambertMaterial :

var  cubeMaterial = new THREE.MeshLambertMaterial({color:0xffffff});

阴影:Three.JS默认是不渲染出阴影的,这是比较耗费计算资源的。但是可以指定让渲染的时候渲染出阴影。

确定让渲染器渲染出阴影:

renderer.shadowMapEnabled = true

指出那个物体会接受物体投射出的阴影,就是说,物体投射出的阴影会显示在哪个物体。例子中,指定平面会接受物体投射出的阴影,就是说其他物体投射出的阴影会出现在平面上,不会跑到其他地方。

指定平面接受物体投射出的阴影:

plane.receiveShadow = true

指定那个物体会投射阴影,指定哪个物体会投射阴影,不指定的物体就不会投射阴影。
指定立方体投射会投射阴影:

cube.castShadow = true

最后,指定由哪个光源照射物体来投射阴影,并不是所有的光源都可以产生阴影。物体有阴影,必须要有光源照射吧!

指定由前面建立的聚光灯spotLight来照射物体产生阴影:

spotLight.castShadow = true

代码如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值