您的位置:首页 > 其它

DirectX模板技术解析基础三

2011-03-13 00:31 417 查看
作者:StrongCoding

邮箱:StrongCoding@qq.com DX群:130302441

若文中有误,请告知.十分感谢.一起加油.

这一篇,主要是针对其中的比较重要,可能是你比较模糊的概念或者代码片段的重要分析:

一、ALPHABLEND

(1) 在渲染模板镜子的时候曾用到了混合

Device->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ZERO );

Device->SetRenderState( D3DRS_DSTBLEND, D3DBLEND_ONE );

上面这个东西实际上是阻止写入到后缓存,这是网上人说的,依我的测试,这个东西仅仅是混合镜子而已,并没有网上说的那 样 子。

(2) 在渲染茶壶的时候也用到了混合

Device->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_DESTCOLOR );

Device->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ZERO );

二、关于是否开启深度的问题

我们之前在渲染茶壶的时候,之前曾关闭了深度缓存写的功能。这是一个需要重点解释的一个东西:

因为那个镜子的深度值我们没有设置是为0的,也就是没有深度值的;而我们的茶壶是有深度值的;也就意味着茶壶会在镜子后被 渲染,我们是看不到的,被镜子给挡住了;再是茶壶的模板值为1,也就注定了它仅仅会在镜子那个面被渲染。最终导致了我们对 于反射的茶壶是看不到的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: