|
大家好,向大家提一个问题,
我现在话一个地形 ,有两层纹理,使用两次渲染来进行混合。第一次不透明的渲染,第二次根据顶点的DIFFUSE进行渲染。
如下
Device->SetTexture(0, Tex_1);
Device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
Device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 );
Device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE );
Device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
Device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0,rowidth*colheight,0,(rowidth-1)*(colheight-1)*2);
Device->SetTexture(0, Tex_2);
Device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
Device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 );
Device->SetRenderState( D3DRS_ALPHABLENDENABLE,TRUE);
Device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0,rowidth*colheight,0,(rowidth-1)*(colheight-1)*2);
Device->SetRenderState( D3DRS_ALPHABLENDENABLE,FALSE);
现在我想增加2个纹理,总纹理达到4层,想用同样的方法进行混合。但是DIFFUSE 这个东东只有一个,无法表示2、3、4层纹理的透明程度。我想问一下各位达人有什么办法来记录顶点第2、3、4层的透明程度吗?
我听说可以使用DIFFUSE 的前两位表示第一次 2-3位表示第二层 4-5位表示第三层。请问这样需要怎么来实现?
谢谢大家,希望不吝赐教。谢谢 |
|