|
本帖最后由 天行剑 于 2013-11-6 15:53 编辑
一直用这个模式来实现场景切换:
// 添加跟随模型的矩阵控制器的。按下对应键即可实现视口切换到该控制器。
ksmm->addMatrixManipulator('1', "carFollower", followCar);(第一人称跟踪视角)
ksmm->addMatrixManipulator('2', "cameraFollower", followCamera);
ksmm->addMatrixManipulator( '3', "Trackball", new osgGA::TrackballManipulator );
……
osgViewer::Viewer viewer;
viewer.setCameraManipulator(ksmm);
现在新增了一个场景,借用了Array大神在CookBook中follow_model.cpp的一段代码,最后实现场景的代码为:
osgViewer::Viewer viewer;
viewer.addEventHandler( new FollowUpdater(model) );(第三人称跟踪视角)
这样两段代码写好后的确可以在程序中运行第一人称视角(把第三人称跟踪视角注掉即可)或第三人称跟踪视角(把第一人称跟踪视角注掉即可)。
问题是,如何同时保留第一人称跟踪视角和第三人称跟踪视角,且通过按键就能实现视角的切换呢? |
|