PointLight
大约 2 分钟组件文档组件PointLight
PointLight———点光源组件,从一个点向各个方向发射光。例如,模拟一个灯泡发出的光。
创建
import { PointLight } from '@fantasy3d/core';
const { rootEntity } = scene;
// 在场景根实体上添加点光源组件
rootEntity.addComponent( PointLight, {
color: '#ffffff', // 点光颜色
intensity: 600.0 * Math.PI, // 点光强度
distance: 100.0 // 点光照射距离
} );
提示
PointLight 组件初始化参数,详见 PointLightOptions。
阴影
PointLight 组件支持阴影,可以在初始化时设置阴影参数,如下所示:
import { PointLight } from '@fantasy3d/core';
const { rootEntity } = scene;
// 在场景根实体上添加点光源组件
rootEntity.addComponent( PointLight, {
color: '#ffffff', // 点光颜色
intensity: 600.0 * Math.PI, // 点光强度
distance: 100.0, // 点光照射距离
castShadow: true, // 开启阴影投射
// 阴影参数
shadow: {
bias: -0.005,
mapSize: 2048,
camera: {
near: 0.1,
far: 1000.0
}
}
} );
提示
阴影参数,详见 LightShadowOptions。
重要
引擎(Engine)创建时,需要启用阴影图,否则灯光阴影不生效,如下所示:
import { PCFSoftShadowMap } from 'three';
import { Engine } from '@fantasy3d/core';
// 创建引擎对象
const engine = new Engine( {
gl: {
........
// 阴影图参数
shadowMap: {
eanbled: true, // 启用阴影图
type: PCFSoftShadowMap // 阴影图类型
}
........
}
} );
属性
light - 获取 three.js 原生点光源对象(PointLight),只读属性。
color - 设置点光源颜色,只写属性。
intensity - 设置点光源强度,单位:candela(坎德拉),只写属性。
power - 设置点光源光通量,单位:lumen(流明),只写属性。
watts - 设置点光源辐射通量,单位:watts(瓦),只写属性。
distance - 设置点光源衰减距离,当设置为零时,表示永不衰减。当值不为零时,光线会先按照平方反比定律衰减,直到距离截止点附近,然后线性衰减到0。只写属性。
position - 设置点光源位置(本地坐标系),只写属性。
按现代光通量的定义,波长为555nm的1watts辐射通量,有683lumen的光通量。人眼对555nm波长的光最为敏感,即
。 ↩︎