[osg-users] Transparency problem
    Yu Jie 
    beingbad at 163.com
       
    Thu Jun 13 02:29:05 PDT 2019
    
    
  
Hi, Everyone! Is there anybody can help to solve this problem. I tried to make geode node to be transparency in my application.  A piece of my code is list below: 
osg::StateSet* stateSet = geode->getOrCreateStateSet();
    stateSet->setMode(GL_BLEND, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
    osg::BlendFunc* blendFunc = dynamic_cast<osg::BlendFunc*>(stateSet->getAttribute(osg::StateAttribute::BLENDFUNC));
    if (nullptr == blendFunc) {
        blendFunc = new osg::BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
        stateSet->setAttribute(blendFunc, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
    } else {
        blendFunc->setSource(GL_SRC_ALPHA);
        blendFunc->setDestination(GL_ONE_MINUS_SRC_ALPHA);
    }
    osg::Material* mat = dynamic_cast<osg::Material*>(stateSet->getAttribute(osg::StateAttribute::MATERIAL));
    if (nullptr == mat) {
        mat = new osg::Material;
        stateSet->setAttribute(mat,osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
    }
    mat->setAmbient(osg::Material::FRONT_AND_BACK,osg::Vec4(0.2f,0.2f,0.2f,0.3f));
    mat->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(0.8f,0.8f,0.8f,0.3f));
    mat->setTransparency(osg::Material::FRONT_AND_BACK, 0.4);
    osg::LightModel* lm = dynamic_cast<osg::LightModel *>(stateSet->getAttribute(osg::StateAttribute::LIGHTMODEL));
    if (nullptr == lm) {
        lm = new osg::LightModel();
        stateSet->setAttribute(lm,osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
    }
    lm->setTwoSided(false);
    stateSet->setAttribute(lm, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
it seems like something is wrong as the transparency effect is miss-up. could anybody figure out what i missed and how to solve this problem.
thanks very much for your help!
Cheers,
Yu
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=76283#76283
Attachments: 
http://forum.openscenegraph.org//files/transparency_missup_209.png
    
    
More information about the osg-users
mailing list