今天讲的太阳光不是three自带的DirectionalLight这个灯光,而是在场景里面能真实看到的光线特效,也可以叫做光晕。
先看实现效果图
现在讲讲实现步骤
- 安装maath,这是一个由数学助手、随机生成器、bits和bobs的集合。引入这个的目的是LensFlare.js文件要用这个来做太阳的旋转和透明度等效果。
npm install maath
2. 引入LensFlare.js到文件里面,文件在一下地址。
https://download.csdn.net/download/qq_43185384/88742377
大概内容为以下,其中16个参数,分别为是否展示、位置、透明度、星形点数,炫光大小,太阳大小,闪烁速度,锐化数、刻度,是否旋转,是否光斑变形,是否开启重影,启用或禁用星爆,重影比例数,启用或禁用传统条纹,启用或禁用跟随鼠标镜头光斑。
我只使用了前两个参数,如果有兴趣可以测试后面的参数的效果。
3. 实现一个具体的对象,然后把这个对象放到场景里面
import { LensFlareEffect } from './LensFlare'
const scene = new THREE.Scene();
/**
* Lens Flare
*/
const lensFlareEffect = LensFlareEffect(true, new THREE.Vector3(-560, 940, -1880))
console.log(lensFlareEffect)
// lensFlareEffect.position.set(60, 400, -380)
scene.add(lensFlareEffect)
以上就可以展示出太阳光和光晕。