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
。CameraHelper
可视化.shadow.camera
为了方便观察阴影渲染的范围,需要把平行光对应的阴影相机
.shadow.camera
可视化显示。.mapSize
和.radius
light.shadow.mapSize
阴影贴图尺寸属性(提升边缘渲染效果)
如果你的阴影边缘不够清晰,有模糊感、锯齿感,可以适当提升
.mapSize
属性值。light.shadow.radius
弱化模糊阴影边缘
适当提升
.shadow.radius
,你可以感到阴影边缘与非阴影区域是渐变过渡,或者说阴影边缘逐渐弱化或模糊化,没有很明显的边界感。Demo
模拟太阳光阴影(通过GUI)
注意:实际生活中所有物体都可以产生阴影,同时所有物体都可以接收其它物体的阴影,所以所有Mesh都批量设置
.castShadow
和.receiveShadow
属性最后,你可以自己通过GUI的方式去调节太阳光
内容差不多到这里就介绍完了 🎉🎉🎉
参考链接
- 作者:JinSo
- 链接:https://jinso365.top/article/three-shadow
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。