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

292 篇文章 14 订阅

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值