龙书D3D11章节习题答案(第十章)

本篇博客主要探讨了Direct3D 11中关于深度测试和渲染的技术,包括遮罩(stenciling)的证明、不同光照条件下的矩阵运算、镜像效果实现、深度复杂度可视化方法,以及如何在镜面反射场景中同时反映地面和骷髅头。通过实例分析和代码修改,展示了如何调整深度设置和融合效果以优化渲染性能。
摘要由CSDN通过智能技术生成

以下答案仅供参考,有错欢迎留言。


Chapter 10 : Stenciling


1. Prove that the general shadow matrix S reduced to Sdir if Lw = 0 and S reduces to Spoint for Lw = 1.

P.833~834的C.4.7 Ray/Plane Intersection给出了S的推导过程,Sdir和Spoint唯一的区别在于Sdir所用的L为(Lx,Ly,Lz,0), 而Spoint所用的L为(Lx,Ly,Lz,1),为了在处理阴影时统一用一个Shadow Matrix计算,引入Lw来表示0和1,具体证明可用笔验算。




2. Prove that  by doing the matrix multiplication for each component, as was done in §10.5.1 for directional lights.

 // Lw=1

首先把变形为s = (-p*n·(p-L) + (n·p+d)*(p-L))/(-n·(p-L))

S’ = [Px, Py, Pz, 1] * S,

Sw = -PxNx - PyNy - PzNz + n·L= -n·(p-L), 

即上式的分母(在投影到齐次空间w=1上时会自动做除法,所以接下来只要证明[Px, Py, Pz, 1] * S计算得出的分子与公式变形得到的分子(-p*n·(p-L) + (n·p+d)*(p-L))是相同的即可)。

将分子(-p*n·(p-L) + (n·p+d)*(p-L))

化简:-p*n·p + p*n·L + n·p*p - n·p*L + d*p - d*L = p*n·L - L*n·p + d*p - d*L = p*(n·L+d) - L*(n·p+d)

S’ = [Px, Py, Pz, 1] * S,

Si = Pi*(n·L + d) - Li*(PxNx+PyNy+PzNz+d) = Pi*(n·L + d) - Li*(n·p + d), 

即计算所得的Si与上述由分子得到的化简式相同,证毕。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值