OGRE中的轨道摄像机实现

时间:2014-05-05 14:04:37

标签: graphics sdk ogre

由于我是Ogre3D的新手,我只是设法完成了设计功能,但最终却陷入了相机实施的困境:

  • 实施第三人称相机
  • 实施轨道摄像机(摄像机在房间中央的某个位置聚焦(观察))

我只有普通相机的代码。

void Assignment1::createCamera(void){
mCamera = mSceneMgr->createCamera("PlayerCam");  // create the camera
mCamera->setPosition(Ogre::Vector3(0,10,500)); // set its position, direction  
mCamera->lookAt(Ogre::Vector3(0,0,0));
mCamera->setNearClipDistance(5);                 // set the near clip distance
mCameraMan = new OgreBites::SdkCameraMan(mCamera);   // create a default camera controller
}

任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

OgreBites框架(由Ogre SampleBrowser使用)提供了Ogre SdkCameraMan中不同摄像机处理选项的示例。实际代码可以在Ogre存储库的SdkCameraMan.h中找到。

要将模式切换到轨道相机,只需添加以下行:mCameraMan->setStyle(CS_ORBIT);

一些一般的摘录/指示:

  • 对于轨道摄像机,您可以为每个摄像机使用inbuild Ogre功能,以指定战利品目标:mCamera->setAutoTracking(true, mTargetNode);。此外,您还可以防止这样的偏航运动:mCamera->setFixedYawAxis(true);
  • 对于第三人称相机,您只需要创建角色的子节点并稍稍向后移动并将相机绑定到该节点。然后它会跟随你的角色并且还应该继承它的旋转变化。