ShadowMap的实现 -- 正中要害简化版

来源:互联网 发布:mac触摸板使用技巧 编辑:程序博客网 时间:2024/06/08 17:31

 经过一天断断续续对SDK例子的学习.我终于自己实现了ShadowMap…下面总结一下学习的心得.先简要概括一下实现ShadowMap的步骤,首先在灯光视角下对需要渲染阴影的场景进行渲染, 通过特殊的shader把整个场景的深度值储存到一张浮点纹理上, 然后在观察视角正常渲染整个场景,渲染的时候通过特定的shader将场景的每个象素的深度值与上一步中得到的深度值进行比较.就能渲染出场景的阴影. 简单的shadowMap就这么两步,很简单吧. 下面详细的步骤我就不说了,SDK比我说的要好得多,我只记一下在自己实现ShadowMap的时候感觉需要的问题.

1.         在第二步时要计算出一个很关键的矩阵,这个矩阵将摄像机观察空间 转换到 灯光观察投影空间,并最终经平移和反向缩放转换到深度值纹理空间里面. 如果没有这个变换我们将不能进行深度值的对应比较.

2.         要保证灯光的位置时能观察到完整的场景这点很显然.其实现实中也是如此.不要被在做固定管线中方向光的习惯影响了.

3.         第三个问题也只有我这么粗心的人才会犯了,看在这个问题让我很抓狂的份上我把它写上来,就是在第二步渲染场景的时候别忘了设置正确的材质和纹理.-_-…

SDK例子里面那个太多东西了,还是我这个比较中要害.

原创粉丝点击