Android Matrix的setLookAtM导致除以它的除法

时间:2016-11-22 21:01:25

标签: android matrix opengl-es

我正在使用Android的Matrix类为我提供进行矩阵变换所需的方法,但是现在当我使用特定参数时,它会导致除以其他计算的除法,从而设置相机从无处指向无处..

我使用以下参数调用Matrix的setLookAtM

eyeX: 0,
eyeY: 0,
eyeZ: -10.9

centerX: 0,
centerY: 0,
centerZ: 5

upX: 0,
upY: 0,
upZ: 1

因此从-10.0 Z到5 Z,Z指向上方,意味着从下面看模型,对吗?

然而,当进行计算的方法,当标准化一个叫's'的东西时,它除以零,因为s的长度显然为零。

实施是错误的,还是只有一些我在这里看不到的假人?

例如,可以查询setLookAtM方法here

1 个答案:

答案 0 :(得分:0)

你试图将你的世界空间设置为Up(即重力方向的相反方向)。你需要Up向量是你想要的东西从摄像机的角度来看 - 也就是说想象你的相机对象有一个小棒直指向它的顶部,棒的方向是什么?它永远不是镜头指向的方向。

当相机直接指向上方时,它仍然可以绕z轴扭转/旋转。向上矢量将定义该旋转。