跳到主要内容

灯光

神说:要有光。

灯光(Light)是能帮助我们创造出更真实的 3D 场景的关键,Tinoe 提供了环境光、点光源等多种灯光类型。在下面这个示例中,灯光始终照向立方体,但灯光的位置以 3 秒为周期在不断变化。

示例

使用

以环境光为例,对于不同类型的灯光,有一部分参数是通用的:

// 默认创建: 纯白色环境光
const light = new AmbientLight();

// 参数配置创建
const light = new AmbientLight({
color: '#001122', // 灯光颜色
alpha: 0.5, // 灯光透明度
intensity: 0.5, // 灯光强度
position: [0, 0, 0], // 灯光位置,部分类型灯光无效
});

所有灯光,均可通过.turnOn().turnOff()方法实现打开和关闭。

light.turnOn(); // 打开
light.turnOff(); // 关闭

常用类型

AmbientLight

环境光是指场景中普遍存在的光,它没有位置,也不会产生阴影。

const ambient = new AmbientLight({
color: '#001122', // 灯光颜色
intensity: 0.5, // 灯光强度
specularTexture: someTexture, // 高光纹理,可选
});

DirectLight

平行光是一种来自它的所有灯线方向均一致的光源。

// 默认创建
const directLight = new DirectLight();

// 参数配置创建
const directLight = new DirectLight({
direction: [0, -1, 1], // 灯光方向,可选,默认[0,-1,0]
distance: 100, // 光源距离,可选,默认100
});

SpotLight

聚光灯,是一束从光源起逐渐发散、减弱的灯光类型。

// 默认创建
const spotLight = new SpotLight();

// 参数配置创建
const spotLight = new SpotLight({
direction: [0, -1, 1], // 光源照射方向
transition: 15, // 边界衰减角度,默认15
angle: 45, // 聚光灯角度,调整可以改变阴影生成效果
distance: 100,
});

PointLight

点光源是从一种从某点位置均匀发散光线的灯光。

// 默认创建
const pointLight = new PointLight();

// 参数配置创建
const pointLight = new pointLight({
intensity: 0.4,
color: '#1A2B3C',
alpha: 0.3,
position: [5, 5, 5],
distance: 200,
});

API

Light

Q&A