多层Alpha混合的问题
在D3D中我做了几层纱网,用的是带alpha通道的贴图实现的,做第一层没有问题,我设置的是默认状态:
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE ,true ) ;
pDevice->SetRenderState( D3DRS_SRCBLEND ,D3DBLEND_SRCALPHA );
pDevice->SetRenderState( D3DRS_DESTBLEND ,D3DBLEND_INVSRCALPHA ) ;
渲染第二层时,它的透明通道就挡住了第一层的。
我找了半天,网上提供的解决办法似乎都是针对一个表面的多层纹理的,我现在是多个对象使用了带alpha通道的贴图,而且我不打算把它们放在一起渲染,请路过的高手们指点一下,该怎么设置状态,非常感谢!
对了,我是用shader渲染的。
[解决办法]
要排序,离相机远的,要先渲染,近的后渲染。
但两个透明的三角机交错时,总一部分在前,一部分在后,你就挂了。
[解决办法]
另外一个简单点的解决办法,用alpha test