Unity中Shader的ShadowMapping的原理(阴影)

文章目录

  • 前言
  • 一、阴影的作用
    • 1、阴影可以增加真实度
    • 2、阴影可以提升空间感
  • 二、阴影的生成
    • 1、现实中阴影的生成
    • 2、Unity中阴影的生成 ShadowMapping
  • 三、ShadowMapping原理
    • 1、在 光源处添加一个相机,同时打开深度测试 与 写入,并生成ShadowMap(深度图)
    • 2、正常绘制场景,把当前的片段转换到光源空间下,计算得到的深度 与采样ShadowMap中的深度值进行比较,如果大于则表示该片段处于阴影中,反之则不在阴影中
  • 四、Unity中是怎么实现的


前言

Unity中Shader的ShadowMapping的原理(阴影)


一、阴影的作用

Unity中Shader的ShadowMapping的原理(阴影)_第1张图片

Unity中Shader的ShadowMapping的原理(阴影)_第2张图片

1、阴影可以增加真实度

2、阴影可以提升空间感


二、阴影的生成

1、现实中阴影的生成

阴影是光线被阻挡的结果
Unity中Shader的ShadowMapping的原理(阴影)_第3张图片

2、Unity中阴影的生成 ShadowMapping

  • ShadowMapping是一种常用的实时阴影生成方法
  • ShadowMap 是动态生成的阴影纹理图,在需要时对其进行采样来获取阴影的一种技术手段

三、ShadowMapping原理

1、在 光源处添加一个相机,同时打开深度测试 与 写入,并生成ShadowMap(深度图)

2、正常绘制场景,把当前的片段转换到光源空间下,计算得到的深度 与采样ShadowMap中的深度值进行比较,如果大于则表示该片段处于阴影中,反之则不在阴影中

Unity中Shader的ShadowMapping的原理(阴影)_第4张图片


四、Unity中是怎么实现的

在FrameDebugger中,可以看见 在光线处的摄像机视角下的深度图 ShadowMap
Unity中Shader的ShadowMapping的原理(阴影)_第5张图片
然后,在计算阴影时,使用的就是这张ShadowMap

你可能感兴趣的:(Unity,unity,游戏引擎)