Page 1 of 1

Transparent planes

Posted: Thu May 09, 2013 9:25 am
by mikkis
If I create, say bush, with planes (with image of leaves, includes alpha channel), I want to read+write to zbuffer but only
where alpha!=0. Havent succeeded with this yet.

Current code:

Code: Select all

 
        sceneManager->getParameters()->setAttribute(ALLOW_ZWRITE_ON_TRANSPARENT, true);
 
        ITexture *image = driver->getTexture("../media/leaf.png");
        tree.load("tree.md2", sceneManager);
        tree.getNode()->setMaterialTexture( 0, image );
        tree.getNode()->setMaterialFlag(EMF_LIGHTING, false);
        tree.getNode()->setMaterialFlag(EMF_BLEND_OPERATION, true);
        tree.getNode()->setMaterialFlag(EMF_ZWRITE_ENABLE, true);
        tree.getNode()->setMaterialFlag(EMF_ZBUFFER, true);
        tree.getNode()->setMaterialFlag(EMF_BACK_FACE_CULLING, false);
        tree.getNode()->setMaterialType(EMT_TRANSPARENT_ALPHA_CHANNEL);
 
What I'm missing?

Re: Transparent planes

Posted: Thu May 09, 2013 9:39 am
by Mel
Use EMT_TRANSPARENT_ALPHA_CHANNEL_REF, or use a shader

Re: Transparent planes

Posted: Thu May 09, 2013 9:42 am
by mikkis
Oops somehow I missed that one, now it works right. Thanks.