type
status
date
slug
summary
tags
category
icon
password
Edited
Aug 3, 2023 08:18 AM
Created
Aug 2, 2023 01:42 AM
点光源PointLight
、聚光源SpotLight
、平行光DirectionalLight
等都可以产生阴影,就像实际生活中的影子环境光AmbientLight
这种没有方向的光源,不会产生阴影
平行光DirectionalLight
阴影步骤
平行光
DirectionalLight
阴影计算最少设置.castShadow
设置产生阴影的模型对象
.castShadow
设置产生阴影的光源对象
.receiveShadow
设置接收阴影效果的模型
.shadowMap.enabled
WebGl渲染器允许阴影渲染
.shadow.camera
设置光源阴影渲染范围
.shadow.camera
.shadow.camera
属性值是正投影相机OrthographicCamera
,所以.shadow.camera
属性的用法可以参考前面讲解过的正投影相机OrthographicCamera
。![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F51c4282c-3b3f-4119-9bb2-5f18c831304d%2F%25E6%25AD%25A3%25E6%258A%2595%25E5%25BD%25B1%25E5%258F%25AF%25E8%25A7%2586%25E7%25A9%25BA%25E9%2597%25B4.png?table=block&id=9aefdd75-2597-4bbd-9143-0afd034063a0&t=9aefdd75-2597-4bbd-9143-0afd034063a0&width=687&cache=v2)
CameraHelper
可视化.shadow.camera
为了方便观察阴影渲染的范围,需要把平行光对应的阴影相机
.shadow.camera
可视化显示。.mapSize
和.radius
light.shadow.mapSize
阴影贴图尺寸属性(提升边缘渲染效果)
如果你的阴影边缘不够清晰,有模糊感、锯齿感,可以适当提升
.mapSize
属性值。light.shadow.radius
弱化模糊阴影边缘
适当提升
.shadow.radius
,你可以感到阴影边缘与非阴影区域是渐变过渡,或者说阴影边缘逐渐弱化或模糊化,没有很明显的边界感。Demo
模拟太阳光阴影(通过GUI)
注意:实际生活中所有物体都可以产生阴影,同时所有物体都可以接收其它物体的阴影,所以所有Mesh都批量设置
.castShadow
和.receiveShadow
属性最后,你可以自己通过GUI的方式去调节太阳光
内容差不多到这里就介绍完了 🎉🎉🎉
参考链接
- 作者:JinSo
- 链接:https://jinso.top/article/three-shadow
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。