Ogre中摄像机的一些相关函数
来源:互联网 发布:Mac os x几好用 编辑:程序博客网 时间:2024/06/06 06:24
//创建摄像机
//sceneManager是一个已经存在的场景管理器实例的指针。
//我们在这里构建名称为“MainCam”的摄像机。
Camera *camera = sceneMgr->createCamera(“MainCam”);
//并不需要计算什么,可以直接从视口中得到这个尺寸 这里现实视口比例是4:3
camera->setAspectRatio(1.333333f);
//30度角可以让我们看到一个长而远的视野
camera->setFOVy(30.0f); //图上W是这里的角度
camera->setNearClipDistance(5.0f); //摄像机到平面xy的距离
camera->setFarClipDistance(1000.0f);//摄像机到平面x'y'的距离
//设置渲染模式 下面分别对应点线 点 实体渲染
camera->setPolygonMode(PM_WIREFRAME); camera->setPolygonMode(PM_POINTS); camera->setPolygonMode(PM_SOLOD); PolygonMode mode = camera->getPolygonMode(); //这个不用讲了 //摄像机的位置变换 //确认我们已经有一个指向“Camera”类型实例的指针camera。 camera->setPosition(200, 10, 200); //也可以用一个三维向量来设置摄像机坐标,在我们得到场景坐标时候这么做会方便一些 //camera->setPosition(Vector3(200, 10, 200)); //假设摄像机还在我们之前设置的200, 10, 200空间位置上。 camera->moveRelative(0, 0, 10); //摄像机移动到210, 10, 210 //move ,moveRelative与 setPosition的区别 //setPosition设置摄像机的绝对坐标 move和moveRelative是把摄像机移动到当前位置的相对位置上 //moveRelative与move的区别 前者是在摄像机的本地坐标移动 假设摄像机像右旋转90度 在向前移动10 //个单位,那么本地坐标是向Z方向移动10 而世界坐标是像X方向移动10个单位 //指向,方向,LookAt void setDirection(Real x, Real y, Real z); void setDirection(const Vector3& vec); Vector3 getDirection(void) const; Vector3 getUp(void) const; Vector3 getRight(void) const; void lookAt( const Vector3& angle); void lookAt(Real x, Real y, Real z); void roll(const Radian& angle); //滚动绕Z轴 右手法则 旋转 即逆时针 void roll (Real degrees){roll (Angle ( degrees ) );} void yaw(const Radian& angle); //偏航绕Y轴 void yaw(Real degrees){yaw (Angle ( degrees ) );} void pitch(const Radian& angle); //倾斜绕X轴 void pitch(Real degrees){yaw (Angle ( degrees ) );} void rotate(const Vector3& axis, const Radian& angle); void rotate(const Vector3& axis, Real degrees){ rotate(axis, Angle(degrees));} void setFixedYawAxis (bool useFixed, const Vector3 &fixedAxis=Vector3::UNIT_Y) //设置Y轴自由度 不能绕Y轴旋转 const Quaternion & getOrientation (void) const void setOrientation(const Quaternion& q); //自动跟踪 /*方法中第一个参数确定是否打开自动跟踪,在任何一帧渲染之前都可以重新设置它。并且需要注意在关掉自动跟踪之前,要确保所被跟踪的节点没有被删除(否则系统会抛出异常)。方法的第二个参数是被跟踪节点得指针,除非你第一个参数是false(这时候可以用NULL),否则你必须确定调用的时候指针指向的节点必须有效。有时候你可能发现你所要跟踪的物体太大了,以至于你都不知道“看”哪里才好,这时候你可以设置第三个参数来定着眼点,它是一个本地空间中相对于场景节点的定位点。*/ void setAutoTracking(bool enabled,SceneNode *target=0,const Vector3 &offset=Vector3::ZERO); //得到摄像机相关信息 const Quaternion& getDerivedOrientation(void) const; const Vector3& getDerivedPosition(void) const; Vector3 getDerivedDirection(void) const; Vector3 getDerivedUp(void) const; Vector3 getDerivedRight(void) const; const Quaternion& getRealOrientation(void) const; const Vector3& getRealPosition(void) const; Vector3 getRealDirection(void) const; Vector3 getRealUp(void) const; Vector3 getRealRight(void) const; /* 其中有“Real”关键字的方法返回的是世界空间的坐标,而拥有“Derived”关键字的方法的返回值是在“轴绑定”的本地坐标系中(也就是说这个坐标系原点是摄像机所在的点,而它的轴向和世界坐标系相同)。*/
camera->move(10, 0, 0); //摄像机移动到210, 10, 200
- Ogre中摄像机的一些相关函数
- Ogre场景摄像机相关备忘.
- OGRE自定义场景中控制摄像机的实现
- OGRE摄像机
- OGRE摄像机
- ogre中获取摄像机位置和方位
- (8) cocos2d-x中相关的一些C++函数
- opencv相关的一些函数
- 一些JSON相关的函数
- 一些JSON相关的函数
- ogre中的摄像机
- Ogre摄像机Camera类
- Ogre摄像机Camera类
- Ogre中的摄像机
- Ogre中的摄像机
- Ogre摄像机Camera类
- OGRE摄像机方向总结
- OGRE摄像机方向总结
- 有关链表的思考
- Trufun Bacon X 需求管理工具正式发布!
- Ogre正常初始化(0xc0150002)失败 解决办法
- 守护进程的编程方法
- OpenCart笔记1
- Ogre中摄像机的一些相关函数
- 不错的矩阵描述(转)
- terrain.cfg参数详解
- CEGUI显示中文解决办法
- GDB调试命令整理
- jdbc 链接sqlserver2008的数据库设置
- 今天关于jboss碰到的问题
- 应用 openssl 工具进行 SSL 故障分析
- 过程改进日记之学习Scrum2010-9-13:Sprint3计划会&Sprint2反思会