【菜鸟的directx11】初探错误总结

2020.2.19

在绘制平面阴影的时候,图形调试器中显示【像素着色器对象:未运行阶段,没有输出】。与示例代码对比调试发现,示例中模板缓冲区值为0或1,而我的程序里只有0。最后通过修改XMMatrixShadow里面平面的坐标,使它比实际平面高出一个单位,成功解决画出阴影。猜测可能是因为阴影低于地板,深度测试没有通过,导致模板缓冲区没有标记好阴影区域导致的。

而且

void OMSetDepthStencilState(
  ID3D10DepthStencilState *pDepthStencilState,
  UINT                    StencilRef
);

里面这个StencilRef参数也是关键,要设置为0才可以,1的话也会测试不通过。MSDN文档(https://docs.microsoft.com/en-gb/windows/win32/api/d3d10/nf-d3d10-id3d10device-omsetdepthstencilstate?redirectedfrom=MSDN#syntax)中说这个参数是模板测试时的参考/控制值(没太明白,蹲一个解答)

 

2020.2.22

在画实例化对象的时候,实例设置的世界坐标缓冲区,类型一定要设置为: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值