首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL中摄像机在物体背后的方向旋转

OpenGL中摄像机在物体背后的方向旋转
EN

Stack Overflow用户
提问于 2013-11-25 03:33:10
回答 1查看 1.1K关注 0票数 0

我正在用OpenGL做一个游戏,用的是免费游戏。

我有一辆车,我可以用钥匙前后移动,然后相机跟踪它。现在,当我转动汽车( xz平面中的glRotate)时,我希望摄像机改变相机的位置(使用gluLookAt),所以它总是指向汽车的后面。

有什么建议我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2015-02-18 08:27:27

对于相机跟随,我使用对象变换矩阵。

  1. 获取对象变换矩阵 camera=object 使用glGetMatrix或其他什么的
  2. Z 移位旋转位置,使轴指向您想要查看的位置 我使用对齐对象在Z轴上向前移动,但并不是所有的网格模型都是这样的,因此(+/-)90 deg围绕x,yz旋转以匹配以下内容:

代码语言:javascript
复制
- `Z`-axis is forward (or backward depends on your projection matrix and depth function)
- `X`-axis is Right
- `Y`-axis is Up

关于你的相机/屏幕坐标系(投影矩阵)。然后翻译成后面的位置

  1. POV 旋转(可选) 如果您可以从前向稍微旋转摄像机视图(鼠标查看),那么就在这一步进行操作。 camera*=rotation_POV
  2. 变换矩阵到摄像机 相机矩阵通常是它所代表的坐标系矩阵的逆: Camera=Inverse(照相机)

有关更多信息,请参见这里的understanding transform matricesOpenGL逆矩阵计算在C++中包含在这里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20184298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档