在 Three.js 中,RectAreaLight
类用于创建一个矩形区域光源。矩形区域光源会从一个矩形区域发射光线,这在模拟如窗户或软箱等矩形光源的情况下非常有用。
创建 RectAreaLight
的语法如下:
RectAreaLight(color : Integer, intensity : Float, width : Float, height : Float)
- color:光源的颜色,表示为十六进制颜色值,默认为0xffffff(白色)。
- intensity:光源的强度,默认为1。
- width:矩形光源的宽度,默认为10。
- height:矩形光源的高度,默认为10。
示例代码:
import * as THREE from 'three';
import { RectAreaLightUniformsLib } from 'three/examples/jsm/lights/RectAreaLightUniformsLib.js';
RectAreaLightUniformsLib.init();
let rectLight = new THREE.RectAreaLight(0xffffff, 1, 10, 10);
rectLight.position.set(5, 5, 0);
scene.add(rectLight);
在上述示例中,我们首先导入了必要的模块,然后创建了一个矩形区域光源并设置了其位置,最后将它添加到了场景中。
除了 RectAreaLight
,Three.js 还提供了以下几种光源:
AmbientLight
:环境光,对场景中的所有物体均匀照明,不能用来投射阴影。DirectionalLight
:方向光,从一个特定方向上发出的光线,类似于太阳光。可以投射阴影。SpotLight
:聚光灯,从一个点向一个特定方向发射的圆锥形光束。可以投射阴影。PointLight
:点光源,从一个点向所有方向均匀发射的光线。可以投射阴影。HemisphereLight
:半球光,上半球发出一种颜色的光,下半球发出另一种颜色的光。
请注意,RectAreaLight
的着色器统一值需要使用 RectAreaLightUniformsLib
库来提供,否则它将不会在渲染时显示。