OSG地球摄像机位置

问题描述 投票:0回答:1

我在几次否定尝试后给您写信。

我正在使用OSGEarth,尤其是我无法为起始位置设置摄像机的经度,纬度和高度。

恐怕与我使用EarthManipulator]的事实有关

所以我创建了相机:

osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());  
osg::ref_ptr<osg::Camera> camera = new osg::Camera;
camera->setGraphicsContext(gc);
camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
camera->setClearMask(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

然后,我创建view

,并将EarthManipulator传递给该>
osg::ref_ptr<osgViewer::Viewer> g_viewer = new osgViewer::Viewer;

osg::Vec3d eye(1110.0, 1110.0, 1110.0);
osg::Vec3d center(10.0, 10.0, 10.0);
osg::Vec3d up(0.0, 1.0, 0.0);

g_viewer->setCamera(camera.get());

EarthManipulator* manip = new EarthManipulator();

manip->setViewpoint(Viewpoint(
    "Home",
    -71.0763, 42.34425, 0,
    // -71.0763, 42.34425, 0,   // longitude, latitude, altitude
    24.261, -21.6, 3450.0), // heading, pitch, range//3450
    4.0);     // duration, 4.0);

g_viewer->setCameraManipulator(manip);

但是我无法摆脱通常的观点。

我也尝试过在EarthMipulator上工作,特别是设置原始位置

manip-> setHomePosition()

但没有任何变化

我经过几次否定尝试后给您写信。我正在使用OSGEarth,尤其是无法为起始位置设置摄像机的经度,纬度和高度。恐怕...

c++ camera position openscenegraph osgearth
1个回答
0
投票

您想要的方法是EarthManipulator :: setHomeViewpoint:

© www.soinside.com 2019 - 2024. All rights reserved.