修改相机参数时不知怎么回事修改参数又无效了,蛮奇怪了,最后问题解决了,记录一下.
直接上代码:
#pragma comment(lib, "osg.lib")
#pragma comment(lib, "osgDB.lib")
#pragma comment(lib, "osgViewer.lib")
#include "osgViewer/Viewer"
#include "osgDB/ReadFile"
#include "osg/Node"
#include "osg/Shape"
#include "osg/Geode"
#include "osg/ShapeDrawable"
int main(){
//初始化视景器
osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer;
//初始化场景根节点
osg::ref_ptr<osg::Group> root=new osg::Group;
//场景数据
osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("glider.osg");
root->addChild(node);
//将场景数据加入视景器中
viewer->setSceneData(root);
//得到相机默认的参数设置
osg::Vec3d eye,center,up;
viewer->getCamera()->getViewMatrixAsLookAt(eye,center,up);
//将相机参数打印出来
printf("init eye: %f,%f,%f\n",eye._v[0],eye._v[1],eye._v[2]);
printf("init center: %f,%f,%f\n",center._v[0],center._v[1],center._v[2]);
printf("init up: %f,%f,%f\n",up._v[0],up._v[1],up._v[2]);
//修改相机参数
eye=osg::Vec3d(0.0,-10.0,0.0);
center=osg::Vec3d(0.0,0.0,0.0);
up=osg::Vec3d(0.0,0.0,1.0);
//将参数设置给相机,并立即获取相机参数
viewer->getCamera()->setViewMatrixAsLookAt(eye,center,up);