LightManager
灯光管理器类,负责管理3D场景中的各种灯光,包括环境光、半球光、平行光等。提供统一的灯光管理接口,支持阴影控制和自定义灯光添加。
类定义
javascript
class LightManager extends EventManager属性
shadow
获取灯光阴影状态,控制平行光是否投射阴影。
类型: {boolean}
只读: true
示例:
javascript
// 获取阴影状态
const isShadowEnabled = lightManager.shadow;
console.log('阴影状态:', isShadowEnabled);lightGroup
获取灯光组,返回包含所有灯光的Group对象,可以添加到场景中。
类型: {THREE.Group}
只读: true
示例:
javascript
// 获取灯光组并添加到场景
const lightGroup = lightManager.lightGroup;
scene.add(lightGroup);hemisphereLight
获取半球光源,返回半球光源实例,提供天空和地面的环境光照。
类型: {THREE.HemisphereLight}
只读: true
示例:
javascript
// 获取半球光源并调整强度
const hemisphereLight = lightManager.hemisphereLight;
hemisphereLight.intensity = 0.5;directionalLight
获取平行光源,返回平行光源实例,提供主要的方向性光照,支持阴影投射。
类型: {THREE.DirectionalLight}
只读: true
示例:
javascript
// 获取平行光源并调整位置
const directionalLight = lightManager.directionalLight;
directionalLight.position.set(1, 1, 1);
directionalLight.intensity = 1.0;ambientLight
获取环境光源,返回环境光源实例,提供整体的环境光照,无方向性。
类型: {THREE.AmbientLight}
只读: true
示例:
javascript
// 获取环境光源并调整强度
const ambientLight = lightManager.ambientLight;
ambientLight.intensity = 0.4;directionalLightShadow
设置平行光的阴影范围,设置平行光阴影相机的范围,影响阴影的覆盖区域和精度。
类型:
示例:
javascript
// 设置较大的阴影范围
lightManager.directionalLightShadow = 1000;
// 设置较小的阴影范围(更精确)
lightManager.directionalLightShadow = 200;lightMap
获取灯光映射表,返回内部存储的灯光映射Map对象,包含所有灯光的键值对。
类型: {Map<string, THREE.Light>}
只读: true
示例:
javascript
// 获取灯光映射表
const lightMap = lightManager.lightMap;
// 遍历所有灯光
for (const [name, light] of lightMap) {
console.log(`灯光名称: ${name}, 类型: ${light.type}`);
}方法
setLight(name, light)
添加自定义灯光到管理器,将自定义的灯光添加到灯光管理器中,灯光会被添加到灯光组中。
参数:
name{string} - 灯光的唯一名称标识light{THREE.Light} - 要添加的灯光实例
示例:
javascript
// 添加聚光灯
const spotLight = new THREE.SpotLight(0xffffff, 1, 100, Math.PI / 4, 0.25, 1);
lightManager.setLight('spotLight', spotLight);
// 添加点光源
const pointLight = new THREE.PointLight(0xffffff, 1, 100);
lightManager.setLight('pointLight', pointLight);
// 添加区域光
const rectAreaLight = new THREE.RectAreaLight(0xffffff, 1, 10, 10);
lightManager.setLight('rectAreaLight', rectAreaLight);使用场景
基础光照
- 提供环境光、半球光、平行光的基础配置
- 支持阴影效果
- 提供良好的默认光照设置
自定义灯光
- 支持添加各种类型的自定义灯光
- 提供灯光的统一管理
- 支持灯光的动态添加和移除
阴影控制
- 控制平行光的阴影效果
- 调整阴影范围
灯光管理
- 提供灯光的统一访问接口
- 支持灯光的批量操作
- 提供完整的资源清理功能
相关链接
- SceneManager - 场景管理器
- RenderManager - 渲染管理器
- Viewer3D - 主引擎类