|
大家好!请教一个折腾了很久的问题,我把在3dMax中设计的模型导入OSG后,默认情况下:水平方向上的面都是黑色的,而手动添加光源后,有些模型细节却看不见了,看起来是白色的一片。请看图:
默认:
默认效果
添加光源后:
设置光源后效果
设置光源的代码如下:
osg::StateSet* rootStateSet = sceneRoot->getOrCreateStateSet();
osg::ref_ptr<osg:ight> sunLight = new osg::Light;
sunLight->setAmbient(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f));
sunLight->setDiffuse(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f));
sunLight->setSpecular(osg::Vec4(1.0f, 1.0f, 0.75f, 1.0f));
sunLight->setConstantAttenuation(1.0f);
sunLight->setLinearAttenuation(0.0f);
sunLight->setQuadraticAttenuation(0.0f);
sunLight->setPosition(osg::Vec4(1667.0f, 1667.0f, 1000.0f, 1.0f));
rootStateSet->setAttributeAndModes(sunLight.get(), osg::StateAttribute::ON);
麻烦各位高手帮忙分析一下,谢谢了! |
|