1. 创建摄像机:
mCamera = mSceneMgr->createCamera(“PlayCam”);
这将创建一个叫"PlayerCam"的摄像机。如果你不打算保留它的指针,那么你可以调用场景管理器的方法 getCamera 通过传递它的名字来获取它。
Virtual Camera* Ogre::SceneManager::createCamera(const String & name )[virtual]
创建一个被场景管理器操作的摄像机
评论:
这个摄像机一定要以后通过SceneNode类的attachObject方法绑定到场景中。
参数:
name : 给新摄像机起的名字
2.设置摄像机的位置:
mCamera->setPosition(Vector3(0,100,500));
void Ogre::Billboard::setPosition(const Vector3 & position )
设置公告板的位置
评论:
位置和公告板四元组上面的点有关系,依赖于BillboardSet,该位置可能是四元组的中心,例如左上角的点,如需更多信息请查看:BillboardSet::setBillboardOrigin。
3设置摄像机的方向
void Ogre::Camera::lookAt(const Vector3 & targetPoint)
指出摄像机在世界坐标系中的位置
评论:
这是一个有利于自动产生一个摄像机的方向向量的方法,基于他当前的位置和提供给它的方向点。
参数:
target: 一个指定摄像机方向的向量
4.设置摄像机的进距离剪裁:
mCamera->setNearClipDistance(5);
virtual void Ogre::Frustum::setNearClipDistance(Real nearDist) [virtual]
评论:
近距离剪裁平面的位置是从平截头体的位置到世界坐标投影到屏幕上的距离。近平面距离和可视区和屏幕纵横比联合起来共同决定在世界坐标系下面视口的大小。注意世界坐标系下的视口和以像素显示的屏幕视口不同。平截头体视口应该和渲染到屏幕以避免曲解的屏幕视口有一样的纵横比。
setFarClipDistance();和该方法相似省略
5创建视口
Viewport* vp = mWindow->addViewport(mCamera);
Virtual Viewport* Ogre::RenderTarget::addViewport(
Camera* cam,
int ZOrder = 0,
float left = 0.0f,
float top = 0.0f,
float width = 1.0f,
float height = 1.0f
) [virtual]
给渲染目标增加一个视口】
评论:
视口是渲染结果输出到的矩形。该方法添加一个视口到摄像机提供的渲染目标。如果你想给一个单独的渲染目标添加不止一个视口的时候,其余的参数是必需的。注意传递给该方法大小信息是作为参数传递过去的。这些参数并非全部有关系。这就使视口随着目标可以自动的改变。
参数:
cam 视口内容将从该摄像机开始渲染(强制的)
ZOrder 相对于其他视口而言,该视口的次序。ZOrder大的视口在Zorder小的值的视口的上面。实际数量是不相干的,只和相对的Zorder