初识ThreeJS中常见的光源

本文介绍了ThreeJS中四种常见的光源:环境光、点光源、聚光灯和平行光。通过实例展示了它们在场景中的应用,包括颜色、强度、距离和角度等参数的影响,并探讨了它们在创建阴影和模拟真实环境光效中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现实环境中,人们之所以能看得到物体,是因为有光,物体的材质反射光到人眼中。在ThreeJS中有几种光源,去模拟现实环境。最常见的四种为:

  • 环境光( AmbientLight ):笼罩在整个空间无处不在的光
  • 点光源( PointLight ):向四面八方发射的单点光源
  • 聚光灯( SpotLight ):发射出锥形状的光, 模拟手电筒,台灯等光源
  • 平行光( DirectinalLight ):平行的一束光,模拟从很远处照射的太阳光

还有半球光光源( HemisphereLight ),平面光光源( AreaLight ),这里暂不做介绍。下面以一只高跟鞋为例来演示这几种光源。

白色环境光 + 白色平行光的鞋子效果
图1 白色环境光 + 白色平行光的鞋子效果

P.S. 此处的坐标轴是为了辅助创建光源,更好地放置光源的位置。其中红色线表示X轴,绿色线表示Y轴,蓝色线表示Z轴,很好记,红绿蓝,RGB-XYZ。有时候为了搞错,可以用右手法则去验证一下。代码也非常简单。

 var axis = new THREE.AxisHelper(3); // 3表示轴的长度
 scene.add(axis);

环境光(AmbientLight)

环境光可以说是场景的整体基调。如何创建环境光呢?代码如下。

var ambient = new THREE.AmbientLight(0xffffff);
scene.add(ambient); //将环境光添加到场景中

API也很简单,只有color和intensity参数。

AmbientLight( color, intensity )

color — 光的颜色值,十六进制,默认值为0xffffff.
intensity — 光的强度,默认值为1.  

图1示例中的环境光为白光。我们将颜色设置为红色,看看什么效果。结果是整只鞋子都变成了红色。

红色环境光 + 白色平行光的鞋子效果
图2 红色环境光 + 白色平行光的鞋子效果

需要注意的是,由于环境光无处不在,也就是说它是没有方向的,当然不能产生阴影。而且,它也不能作为环境中唯一的光源。我们来看一下只有环境光的效果。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值