Opengl - 从gl视图创建迷你地图

时间:2016-03-31 07:23:08

标签: android opengl-es

我想从我写的一些opengl代码创建一个地图:

为了做到这一点,我虽然拍摄了gl屏幕上方的屏幕截图。 然而,我似乎无法找到如何做到这一点......

有什么建议吗?

1 个答案:

答案 0 :(得分:-1)

OSG example code here已解决类似问题。

首先,您需要设置视图,以便从TOP VIEW中查看中心。

 osg::Vec3 center = scene->getBound().center();
    double radius = scene->getBound().radius();
    view->getCamera()->setViewMatrixAsLookAt( center - lookDir*(radius*3.0), center, up );
    view->getCamera()->setProjectionMatrixAsPerspective(
        30.0f, static_cast<double>(width)/static_cast<double>(height), 1.0f, 10000.0f );

然后,您需要使用某些特定于操作系统的API来执行与logic below类似的操作:

osgViewer::ScreenCaptureHandler* scrn = new osgViewer::ScreenCaptureHandler();
osgViewer::ScreenCaptureHandler::WriteToFile* captureOper = new osgViewer::ScreenCaptureHandler::WriteToFile(tmpStr.m_szBuffer, "png");
scrn->setCaptureOperation(captureOper);
scrn->captureNextFrame(*_viewer); 
_viewer->frame();

当然,如果您不使用OSG,那么您需要找到相同的API(您正在使用的库)才能完成相同的任务。