为什么需要光源?
我们能看到物体都是因为有光的反射效果,不同的物体反射出来的光也就显示出来了不同的颜色。所以,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 不是从单个点发射光线,而是从二维平面发射光线,光线彼此平行。