0
다소 큰 메쉬가 있습니다 (osgDB로로드). 또한 여러 개의 하위 메쉬가 있습니다.OpenSceneGraph Emissive Lighting
방출 조명을 설정하려고합니다. 그러나 나는 첫 번째 하위 메쉬 만 불이 붙는 것을 볼 수 있습니다. 모든 하위 메쉬를 어떻게 밝힐 수 있습니까? 장면을 밝히기 위해 조명을 사용하지 않습니다.
권장 방법은 무엇입니까? 내가 메쉬를 읽으면서 (osgDB :: readNodeFile은())가 디스플레이 결과 오류 메시지
*** line not handled *** :map_bump
*** line not handled *** :bump
*** line not handled *** :map_opacity
*** line not handled *** :map_d
*** line not handled *** :refl
*** line not handled *** :map_kS
*** line not handled *** :map_Ns
다음과 같은 디스플레이
int main()
{
osg::Node * cytBuilding = osgDB::readNodeFile(OBJ_FILE);
osg::Group * root = new osg::Group();
osg::PositionAttitudeTransform * scenePAT = new osg::PositionAttitudeTransform();
root->addChild(scenePAT);
scenePAT->addChild(cytBuilding);
//material
osg::Material* material = new osg::Material();
material->setAmbient(osg::Material::FRONT, osg::Vec4(1.0,1.0f,1.0f,1.0f));
material->setDiffuse(osg::Material::FRONT, osg::Vec4(1.0,1.0f,1.0f,1.0f));
material->setSpecular(osg::Material::FRONT, osg::Vec4(0.0,0.0f,0.0f,1.0f));
material->setEmission(osg::Material::FRONT, osg::Vec4(1.0,1.0f,1.0f,1.0f));
osg::StateSet* stateset = new osg::StateSet();
stateset->setAttributeAndModes(material,osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON);
root->setStateSet(stateset);
// viewer
osgViewer::Viewer viewer;
viewer.setSceneData(root);
viewer.realize();
return viewer.run();
자료를 setState에 설정하고 루트 노드로 설정하면 자료가 루트 아래의 모든 노드에 적용되지 않습니까? – mkuse
'오버라이드 | 보호 수준이 낮습니다. 확실한데 모델의 표준이 맞습니까? 테스트를 위해서만 일반 스무딩 방문자를 적용하려고 했습니까 :'static void osgUtil :: SmoothingVisitor :: smooth (osg :: Geometry & g)'? –