threejs矩形光RectAreaLight使用方法

threejs yekong

在 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 库来提供,否则它将不会在渲染时显示。

threejs光源

喜欢