计算gluLookAt的向上矢量的有效方法,它最多指向y轴?

Mat*_*ell 3 opengl camera vector

当摄像机以任何角度观察时,我需要创建一个向上矢量(除了直接向下或向上,因为向上矢量将垂直于y轴).

向上矢量必须垂直于当然的视线.当视线不是沿着y轴时,你可以想象一个眼睛周围的圆圈和向上矢量可能的视线.在这个圆上,将有一个点在y轴上比任何其他点更远.这就是我想要的向上矢量.

我相信我可以找到一个解决方案,但我猜测人们之前会做很多次,我希望得到最有效的解决方案.

我的相机,至少在使用时,不会直接向下或向上看y轴,所以那里没有问题.

Lis*_*isa 16

大多数商业游戏使用交叉产品来产生垂直.

  • 规范化您的外观向量.

  • 取你的外观矢量和0,1,0矢量的叉积.这为您提供了正确的向量.

  • 采用右矢量和外观矢量的叉积.这是您的新向上矢量,它与原始外观矢量垂直.

  • 谢谢你的回答.除非事实证明我不需要垂直向上矢量,否则我会使用你的建议. (3认同)