gpt4 book ai didi

C++ OpenSceneGraph 更改相机眼睛高度

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:37 25 4
gpt4 key购买 nike

正在编写一个小型的 openscenegraph 应用程序,并且需要一种更改相机高度的方法。本质上,眼睛直视着空间中的球。我想要做的是能够降低摄像机高度,以便我能够从下方 catch ,并在需要时提高摄像机高度。如何使用 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, 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 应该让您获得相机。从这里您可以设置相机的位置和外观。

请记住,在像您这样的基本应用中,相机操纵器每帧一次设置相机的位置(基于鼠标交互)。

您需要决定如何处理鼠标输入,并可能接管相机操纵器正在执行的任务。

关于C++ OpenSceneGraph 更改相机眼睛高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com