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

本文介绍了如何使用Three.JS添加聚光灯spotLight,调整材质,以及启用阴影效果。通过设置光源位置,使用MeshLambertMaterial材质使物体对光照产生反应,并配置渲染器以呈现阴影。同时,详细说明了如何让平面接受阴影和立方体投射阴影,确保由特定光源照射产生阴影。
摘要由CSDN通过智能技术生成

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

代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值