OGRE学习记录-自阴影

本文记录了使用OGRE引擎实现深度阴影映射的过程,包括casterVP和receiverVP着色器的作用,以及在遇到问题时的解决方法。虽然最终实现了自阴影效果,但因未使用阴影柔化技术,效果显得生硬。通过这次学习,作者对Additive lighting mask有了更深入的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        OGRE的wiki上提供一个deep shadow mapping的实现,链接

        这里记录一下各个着色器作用和注意的地方。

        casterVP,作用是把顶点坐标转换到纹理坐标和输出顶点深度值。传入的变换矩阵是worldviewproj_matrix,这应该是世界矩阵到正在投射阴影的灯光空间的变换矩阵,目前不知道如何获取灯光的viewproj矩阵,但肯定不是摄像机的viewproj矩阵。

        casterFP,作用是输出阴影纹理每个texel的深度(以rgba形式输出,r,g和b相同)。

        receiverVP,作用是顶点坐标转换,输出顶点颜色和阴影纹理坐标。中间法线乘以worldIT是将法线从物体空间转换到世界坐标系。

        receiverFP,作用是根据深度值输入像素的颜色。

        我一开始运行的时候,没有看到阴影的效果,后来把深度值比阴影纹理小的像素输出为白色,大的输出为黑色,结果全是黑的,于是我直接把深度调整那部分注释掉了(不太了解调整中各个参数的含义,不知道怎么调),然后阴影出来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值