Skip to content

Latest commit

 

History

History

ShadowVolumes

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

阴影映射

基本思路

将顶点由给定光的方向挤出,利用深度测试和前向顶点与后向顶点在平面上投影的差值在待接收阴影的平面形成圆斑,基于透明度混合为圆斑着色为阴影色

顶点挤出

  • 将光源方向从世界空间转化为模型空间
  • 通过法线与光源方向的点积判断顶点朝向是否与光源同向,只挤出与光源同向的顶点

分别裁剪前向和后向顶点着色

  • 裁剪后向顶点,将挤压得到的片元在A通道上绘制为0(要关闭深度写入防止无法着色后向顶点)



  • 裁剪前向顶点,将挤压得到的片元在A通道上恢复为1,此时仍为0的部分即为阴影圆斑



  • 基于透明度混合,对阴影圆斑着色,同时将圆斑的A通道恢复为1



  • 绘制原物体

效果示意图

最终效果如下: