将顶点由给定光的方向挤出,利用深度测试和前向顶点与后向顶点在平面上投影的差值在待接收阴影的平面形成圆斑,基于透明度混合为圆斑着色为阴影色
- 将光源方向从世界空间转化为模型空间
- 通过法线与光源方向的点积判断顶点朝向是否与光源同向,只挤出与光源同向的顶点
- 裁剪后向顶点,将挤压得到的片元在A通道上绘制为0(要关闭深度写入防止无法着色后向顶点)

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

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

- 绘制原物体
最终效果如下:
