灯光
相关参考:Scene API / 光照
Web 高级 API 允许你读取默认灯光,也可以在运行时新建灯光对象。
获取默认灯光
默认环境光
js
const ambient = await api.getDefaultAmbientLight();默认方向光
js
const left = await api.getDefaultDirectionalLightLeft();
const right = await api.getDefaultDirectionalLightRight();这些默认灯光是场景内部现成的灯光入口,适合做轻量调优。
新建灯光
环境光
js
const ambient = await api.createAmbientLight('#ffffff', 1.2);
await api.add(ambient);方向光
js
const directional = await api.createDirectionalLight('#ffffff', 2);
await api.add(directional);获取灯光颜色与强度
js
// [0-1]之间的浮点数。可乘于255转换为8bit-RGB
const [r, g, b] = await api.getLightColor(directional);
const intensity = await api.getLightIntensity(directional);修改灯光颜色与强度
js
await api.setLightColor(directional, '#ffd27f');
await api.setLightIntensity(directional, 1.5);方向光目标
方向光还有一个目标对象可用于控制照射方向:
js
const target = await api.getDirectionalLightTarget(directional);
await api.setPosition(target, 0, 0, 0);推荐用法
优先改默认灯光
如果只是想把模型调亮一点、冷一点或暖一点,优先改默认灯光即可。
只有在需要时再追加新灯光
运行时新增灯光虽然灵活,但也会增加调试复杂度和性能消耗(过多的灯光会严重拖累性能)。
与模型配合
灯光效果通常和以下能力一起调:
在 PBR 模型场景中,这三者通常需要配套调试。