加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C OpenSceneGraph更改相机眼高

发布时间:2020-12-16 05:02:33 所属栏目:百科 来源:网络整理
导读:编写一个小的openscenegraph应用程序,并需要一种方法来改变Camera高度.从本质上讲,眼睛直视空间中的球.我想要做的是能够降低相机高度,这样我才能从下面看球,并且如果需要的话还可以提高相机高度.如何使用oPengl代码或OpenScenegraph实现此目的? int main(in
编写一个小的openscenegraph应用程序,并需要一种方法来改变Camera高度.从本质上讲,眼睛直视空间中的球.我想要做的是能够降低相机高度,这样我才能从下面看球,并且如果需要的话还可以提高相机高度.如何使用oPengl代码或OpenScenegraph实现此目的?
int main(int argc,char* argv[])
{ 
    osg::ref_ptr<osg::ShapeDrawable> shape2 = new osg::ShapeDrawable; 
    shape2->setShape( new osg::Sphere(osg::Vec3(3.0f,0.0f,0.0f),1.0f) ); 
    shape2->setColor( osg::Vec4(0.0f,1.0f,1.0f) ); 
    osg::ref_ptr<osg::Geode> root = new osg::Geode; 
    root->addDrawable( shape2.get() );///add first osgshapeDrawable2  
    osgViewer::Viewer viewer;
    viewer.setSceneData( root.get() );///set the Geode as scenedata for the viewer
    return viewer.run();
}

解决方法

您需要接管osgViewer :: Camera的控制权,不应该尝试使用基本的OpenGL.

osgViewer :: Viewer :: getCameraWithFocus可以让你拿到相机.从这里您可以设置相机的位置和外观.

请记住,在您拥有的基本应用程序中,相机操纵器每帧设置一次相机的位置(基于鼠标交互).

您需要决定如何处理鼠标输入并可能接管Camera Manipulator正在执行的任务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读