Three.js 基础之灯光

灯光的种类:在场景中添加灯光后, 灯光照射在物体上产生明暗,光亮和阴影, 从而让物体显示的更加立体有光泽

three.js 中, 有 6 种基础类型的灯光, 他们都继承于 Three.Light

灯光类型           灯光名称        是否支持阴影    是否作用于全局    是否有照射目标
AmbientLight     环境光,氛围光        否            是                无
DirectionalLight    平行光            是            否                有
HemisphereLight  半球光源,户外光源     否            是                无
PointLight        点光源              有            否                有
RectAreaLight    矩形面光源            否            否                无
SpotLight        聚光灯光源            是            否                有

 关于阴影的进一步补充说明:

  1. 之前的事例中, 当场景上有反光物体且有灯光时, 物体会产生明暗, 但是请注意:这个物体显示出的明暗并不是真正的 阴影
  2. 这个 物体显示出的明暗 并不是完全符合我们日常的 光影明暗,这是因为 我们目前所有的示例使用的都是 简单光照模型, 也就是说光照射在物体后 并不并不进行漫反射,所以渲染出的 明暗 并不完全自然合理
  3. 默认渲染器 并不会渲染阴影, 迷人支持阴影的灯光也不会投射 阴影, 若想产生真正的阴影, 还需要开启 阴影渲染和投射

 灯光的作用于阴影

AmbientLight 环境光, 氛围光: 通常仅作为 基础光线, 一般需要与其他灯光配合使用,不能产生阴影,也无需指定坐标位置, 仅需设置颜色和强度

DirectionalLight  平行光:最为经常使用的光源, 光纤 都是平行向着一个方向发射,经常用来模拟太阳光照射到某个物体上的光照效果

HemisphereLight 半球光源:更加真实的模拟自然光源, 提供 天空 地面 漫反射光线。一共接收 3 个参数: 第一个: 天空光线颜色,第二个: 地面反射光颜色, 第三个: 光的反射强度

PointLight: 点光源: 类似生活中的灯泡, 光纤 没有固定方向, 朝着四周散射, 点光源对应的辅助对象 PointLightHelper 只有一个 菱形的光源形状,并没有 光 的 发射线条

RectAreaLight  矩形面光源: 与 DirectionalLight 模拟太阳光不同, 光源形状为一个矩形, 可以模拟出明亮的窗口或者 矩形照明光源

  1. 只有 MeshStandardMaterial 和 MeshPhysicalMaterial  材质 才支持 RectAreaLight光源
  2. RectAreaLight  对应的辅助对象, RectAreaLightArea 引入方式和 其他 光辅助对象 引入方式不同。其他光辅助对象 都是在 three 中 使用之前无需引入, 可以直接使用, RectAreaLight  在使用之前需要引入才可以使用                                                          import { RectAreaLightHelper } from 'three/examples/jsm/helpers'

SpotLight   聚光灯 类似与生活中的 聚光灯效果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值