Hi,
I have a model created by 3dmax.The model contains many objects which already
have color or textures.I want to change the color of the model.
I have tried the method to change the material,but it dosen't work well.My code
is:
Code:
osg::ref_ptr <osg::StateSet> stateset=new osg::StateSet();
stateset=model1->getOrCreateStateSet();
stateset->setMode(GL_BLEND,osg::StateAttribute::OFF|osg::StateAttribute::OVERRIDE);
osg::ref_ptr<osg::Material>material=new osg::Material();
material->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(1.0,0.0,0.0,1));
material->setAmbient(osg::Material::FRONT_AND_BACK,osg::Vec4(1.0,0.0,0.0,1));
material->setSpecular(osg::Material::FRONT_AND_BACK,osg::Vec4(1.0,0.0,0.0,1));
material->setEmission(osg::Material::FRONT_AND_BACK,osg::Vec4(1.0,0.0,0.0,1));
material->setShininess(osg::Material::FRONT_AND_BACK,0);
material->setTransparency(osg::Material::FRONT_AND_BACK,0.5);
material->setAlpha(osg::Material::FRONT_AND_BACK,0.5);
stateset->setAttribute(material.get(),osg::StateAttribute::ON|osg::StateAttribute::OVERRIDE);
Oringinal model:
[img]
http://photo.163.com/d3d3d353/big/#aid=215946288&id=6638799033
[/img]
result:
[img]
http://photo.163.com/d3d3d353/big/#aid=215817442&id=6638797425
[/img]
As you can see from the picture,the color of the model is not uniformly
red(osg::Vec4(1.0,0.0,0.0,1)),and also the alpha channel of some part of the
model don't change to 0.5(when I get a screenshot to read the alpha
channel).How can I deal with that?
Thank you!
Cheers,
Duan
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=34955#34955
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org