osg.LightModel用于描述场景中的灯光模型。这个类控制着全局灯光设置,例如环境光,镜面反射和材料属性。
osg::ref_ptr<osg::LightModel> lightModel = new osg::LightModel;
lightModel->setAmbientIntensity(const osg::Vec4& color);
设置环境颜色(默认为黑色)和强度。该方法用于为每个表面添加环境灯光,以减轻场景中的暗影问题。
lightModel->setTwoSided(bool twoSided);
lightModel->setLocalViewer(bool localViewer);
lightModel->setColorControl(int colorControl);
设置反射模式。如果twoSided为真,则镜面反射将在两侧表面使用。localViewer是否启用本地观察者。colorControl控制颜色计算,具体取值如下:
lightModel->setMaterialMode(int materialMode);
lightModel->setEmission(const osg::Vec4& color);
设置表面材料属性。materialMode具体取值如下:
设置表面材料的发射颜色emission。
osg::ref_ptr<osg::LightModel> lightModel = new osg::LightModel;
lightModel->setTwoSided(true);
lightModel->setLocalViewer(true);
lightModel->setColorControl(osg::LightModel::SINGLE_COLOR);
lightModel->setMaterialMode(osg::LightModel::AMBIENT_AND_DIFFUSE);
lightModel->setEmission(osg::Vec4(0.0f, 0.0f, 0.0f, 1.0f));