joken-前端工程师

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::
  404 随笔 :: 39 文章 :: 8 评论 :: 20万 阅读

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场景看起来更加逼真。

posted on   joken1310  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2018-03-06 linux拷贝文件夹cp
2018-03-06 docker 小结
点击右上角即可分享
微信分享提示