问题背景:希望得到相同视角下的不同海平面的截图,所以需要设定视角,以便在进入软件时即可得到目标位置
方法:首先调节到想要的视角位置,得到想要场景,再使用按键响应在终端输出相机的信息,之后再在软件中设置相机的位置以及观察方向。(可以说这是一个取巧的方法,其实也可通过帧监听的方法得到)
1:绑定响应按键,输出相关信息
OIS::Keyboard* mKeyboard; //定义一个按键事件的指针
mKeyboard->capture(); //相机的捕获
if (mKeyboard->isKeyDown(OIS::KC_L) ) //输出相机位置和观察方向,绑定L键
{
printf("%f %f %f\n",mCamera->getPosition().x,mCamera->getPosition().y,mCamera->getPosition().z);
printf("%f %f %f\n",mCamera->getDirection().x,mCamera->getDirection().y,mCamera->getDirection().z);
}
2:在场景中找到合适的位置,按下 L 键,就会在终端输出相机的位置和观察方向
按了三次L键,三组数据,每组数据中,第一行是相机的位置(x,y,z),第二行是观察方向(x,y,z)
3:得到上面的位置之后,在代码中对相机进行设置
mCamera->setDirection(-0.005876f, -0.096776f, -0.995289f);//Li & Xia
mCamera->setPosition(1213.767212f, 15.977533f, 1053.030396f);
这样我们下次每一次运行程序,一进去的视角就是我们所需要的目标位置啦!