该例子实现了模型放大时,产生变形,模型夸张。
主要的功能在setDomeCorrection(viewer, arguments);、 setDomeFaces(viewer, arguments);、
createDistortionSubgraph( loadedModel, viewer.getCamera()->getClearColor());这三个函数中。
接下来设置了一下光源模型
while (arguments.read("--sky-light"))
{
viewer.setLightingMode
(osg::View::SKY_LIGHT);
}
if (viewer.getLightingMode()==osg::View::HEADLIGHT)
{
viewer.getLight()->setPosition(osg::Vec4(0.0f,0.0f,0.0f,1.0f));
}
enum LightingMode
{
NO_LIGHT,
HEADLIGHT,
SKY_LIGHT
};
在osg::View中默认设置了一个头顶光源,关于这三种模式,光的属性中并没有,只是position的最后一
个参数是0,该光是方向光,在无穷远,大于0是位置光源。
LightingMode
是在osg::View中定义的,我们在SceneView中可能找到了答案,看看以下代码:
switch(_lightingMod
主要的功能在setDomeCorrection(viewer, arguments);、 setDomeFaces(viewer, arguments);、
createDistortionSubgraph( loadedModel, viewer.getCamera()->getClearColor());这三个函数中。
接下来设置了一下光源模型
while (arguments.read("--sky-light"))
{
viewer.setLightingMode
(osg::View::SKY_LIGHT);
}
if (viewer.getLightingMode()==osg::View::HEADLIGHT)
{
viewer.getLight()->setPosition(osg::Vec4(0.0f,0.0f,0.0f,1.0f));
}
enum LightingMode
{
NO_LIGHT,
HEADLIGHT,
SKY_LIGHT
};
在osg::View中默认设置了一个头顶光源,关于这三种模式,光的属性中并没有,只是position的最后一
个参数是0,该光是方向光,在无穷远,大于0是位置光源。
LightingMode
是在osg::View中定义的,我们在SceneView中可能找到了答案,看看以下代码:
switch(_lightingMod