Three.js 提供了多种类型的光源,每种光源模拟现实世界中的不同光照效果。以下是 Three.js 中常用的几种光源类型及其特点:
1. 环境光(AmbientLight)
- 描述:环境光是一种全局光源,它均匀地照亮场景中的所有对象,但不会产生阴影。
- 使用场景:用于为场景提供基础亮度,避免物体看起来完全是黑的。
- 代码示例:
const ambientLight = new THREE.AmbientLight(0xffffff, 0.5); // 白色光,强度为0.5 scene.add(ambientLight);
2. 方向光(DirectionalLight)
- 描述:方向光模拟远处的大光源,如太阳。所有光线都平行射入场景,可以产生阴影。
- 使用场景:常用来模拟日光或月光等远距离的光源。
- 代码示例:
const directionalLight = new THREE.DirectionalLight(0xffffff, 1); directionalLight.position.set(1, 1, 1).normalize(); scene.add(directionalLight);
3. 点光源(PointLight)
- 描述:点光源从一个点向四周发射光线,类似于灯泡的效果。可以产生阴影。
- 使用场景:适用于模拟室内照明、路灯等。
- 代码示例:
const pointLight = new THREE.PointLight(0xff0000, 1, 100); // 红色光,强度为1,衰减距离为100 pointLight.position.set(10, 10, 10); scene.add(pointLight);
4. 聚光灯(SpotLight)
- 描述:聚光灯发出锥形光线,类似于手电筒的效果。可以设置光束的角度和衰减,并能产生阴影。
- 使用场景:适合模拟舞台灯光、汽车前灯等。
- 代码示例:
const spotLight = new THREE.SpotLight(0xffffff, 1); spotLight.position.set(10, 10, 10); spotLight.castShadow = true; scene.add(spotLight);
5. 半球光(HemisphereLight)
- 描述:半球光模拟来自天空和地面的光照。通常用于模拟户外环境下的自然光,上部和下部可以有不同的颜色。
- 使用场景:常用于室外场景中,给场景提供更自然的光照效果。
- 代码示例:
const hemisphereLight = new THREE.HemisphereLight(0xffffbb, 0x080820, 1); // 天空色和地面色,强度为1 scene.add(hemisphereLight);
6. 区域光(AreaLight)
- 描述:区域光是从一个矩形区域发射光线,模拟大面积的发光源,如窗户透进来的光。需要注意的是,AreaLight 不是默认包含在 Three.js 中,需要额外引入库支持。
- 使用场景:用于模拟室内透过窗户的自然光或其他大面积的光源。
总结
不同的光照类型在 Three.js 中提供了丰富的选择来模拟各种光照条件,帮助你创建更加真实和生动的3D场景。根据你的具体需求选择合适的光源类型,可以极大地提升场景的真实感和视觉效果。每种光源都有其特定的应用场景和参数设置,合理搭配使用这些光源,可以让你的3D场景看起来更加逼真。
前端工程师、程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2018-03-06 linux拷贝文件夹cp
2018-03-06 docker 小结