23 Three.js的光源种类

为什么需要光源?

我们能看到物体都是因为有光的反射效果,不同的物体反射出来的光也就显示出来了不同的颜色。所以,three.js框架模拟了一些现实生活中的光源来实现所需要的效果。

光源的种类

名字 描述
THREE.AmbientLight 这是一个基础光源,也叫环境光源,该光源的颜色将会叠加到场景现有的颜色上面,无法创建阴影。
THREE.PointLight 点光源,从空间的一点向所有方向发射光源。
THREE.SpotLight 这种光源有聚光的效果,类似台灯、天花板上的吊灯或者手电筒。
THREE.DirectionalLight 无限光,平行光。从这种光源发出的光线可以看作是平行的,比如太阳光。
THREE.HemisphereLight 这是一种特殊光源,可以通过模拟反光面和光线微弱的天空来创建更加自然的室外光线。无法创建阴影。
THREE.AreaLight 使用这种光源可以指定散发光线的平面,而不是一个点。无法创建阴影。
THREE.LensFlare 这不是一种光源,但是通过使用THREE.LensFlare,可以为场景中的光源添加镜头光晕效果。

光源内容的相关更新

由于我也是边学边更新,有不如的地方大家可以留言给我,或者加群沟通。未来的几节更新首先更新THREE.AmbientLight、THREE.PointLight、THREE.SpotLight和THREE.DirectionalLight。这四种光源都是继承至THREE.Light对象。这些光源都比较简单,可用于大多数的场景当中。
然后会更新就是剩下的三种THREE.HemisphereLight、THREE.AreaLight和THREE.LensFlare只在特殊情况下使用的光源。

点光源、聚光源和平行光源之间的区别

这里写图片描述

(1)点光源THREE.PointLight 从特定的一点向所有方向发射光线。 (2)聚光灯光源THREE.SpotLight 从特定的一点发射锥形形状的光线。 (3)平行光源THREE.DirectionalLight 不是从单个点发射光线,而是从二维平面发射光线,光线彼此平行。