OpenGL相机方向

3
所以我在阅读这篇教程中的“翻转相机方向矩阵”部分时,不明白为什么计算相机的上方向时,需要将方向与上方向量相乘,而不是只用方向

我画了下面的图来说明我对读到的教程的理解。 我错在哪里了吗?

enter image description here

1个回答

2

好的,这个教程明确说明:

我们计算相机的上方向是通过取“直接向上”的单位向量(0,1,0)并使用相机方向矩阵的逆来“取消旋转”它。或者,换句话说,在应用相机旋转后,上方向始终为(0,1,0),所以我们将(0,1,0)乘以逆旋转,这给出了相机旋转之前的上方向。

这里计算的上方向是在世界空间中的上方向。在眼睛空间中,上向量是(0,1,0)(按惯例,可以定义为不同的值)。由于视图矩阵将坐标从世界空间转换为眼睛空间,因此我们需要使用逆矩阵将该向量从眼睛空间转换为世界空间。您的图片是错误的,因为它没有正确地涉及到眼睛和世界空间。


抱歉,这仍然困扰着我。 以下是一个示例代码。http://pastebin.com/nLL0uNgK 摄像机仅更改其水平角度,因此摄像机的向上方向不应改变。那么为什么最终向量是(0,0.86,-0.5),而不是(0,1,0)? - McLovin
@Pilpel:如果你围绕x轴旋转,你的上向量当然会改变。你必须围绕y轴进行水平旋转。 - derhass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接