Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么使用OpenGL';让我们看看,如果我们的脸几乎面向天空,我们仍然可以看到眼前的事物?_Opengl_Opengl Es_Glulookat - Fatal编程技术网

为什么使用OpenGL';让我们看看,如果我们的脸几乎面向天空,我们仍然可以看到眼前的事物?

为什么使用OpenGL';让我们看看,如果我们的脸几乎面向天空,我们仍然可以看到眼前的事物?,opengl,opengl-es,glulookat,Opengl,Opengl Es,Glulookat,可能重复: 这与: 如果呼叫是: gluLookAt(512, 384, 2000, 512, 384, 0, 0.0f, 1.0f, 0.0f); 如果我坐在椅子上直视前方,将iPad举在眼前,那么我的头顶就指向天空。因此,上方向向量的(0,1,0),如第3行所示。如果我把它改成(0,0.00001,1),怎么样?这意味着我几乎要躺下了,现在我的脸和眼睛都面向天空。那么,为什么结果与我使用(0,1,0)时的结果完全

可能重复:

这与:

如果呼叫是:

      gluLookAt(512, 384, 2000,
                512, 384, 0,
                0.0f, 1.0f, 0.0f);

如果我坐在椅子上直视前方,将iPad举在眼前,那么我的头顶就指向天空。因此,上方向向量的
(0,1,0)
,如第3行所示。如果我把它改成
(0,0.00001,1)
,怎么样?这意味着我几乎要躺下了,现在我的脸和眼睛都面向天空。那么,为什么结果与我使用
(0,1,0)
时的结果完全相同?

您可能期望发生什么

传递3组值:摄影机位置、摄影机要查看的位置和向上移动的方向。在你的类比中,如果你仰望天空,你就不是在看你的iPad。因此,您的注视位置必须随着您的向上方向而改变。如果你没有改变你的注视位置,那么当你改变向上的方向时,你期望会发生什么


“向上方向”仅影响“向上方向”相对于您查看的位置的位置。如果你想改变你所看到的东西,你必须改变观察点。这就是它存在的原因。

经过更多的尝试和错误,因为我刚刚开始学习OpenGL一天,上方向向量在平面中必须有一些组件,这些组件与相机到目标向量“垂直”(或垂直)

换句话说,在本例中,它是从(512,384,2000)到(512,384,0),因此向量仅在Z方向上。上方向向量必须在XY平面上具有某些分量(XY平面是与仅具有Z方向的向量垂直的平面)


如果没有x和y组件,也就是说,如果它们都是0,那么在我的iPad2上,图像根本不会显示。因此,在这种情况下,上方向向量处理的是XY平面上的旋转,而不是Z方向上的旋转。

我们看到,(1,0.001,0)将倾斜90度,(0,0.0001,1)与
(0,1,0)完全相同。
所以我猜是这样的,如果眼睛面向天空,但可以滚动看到图像,那么它与
(0,1,0)
,这就是为什么
(0,0,1)
,你看不到任何东西,可能是因为滚动角度限制在90度以下。这是上向量的一个相当特殊的情况……对于5个人来说,他们说你应该在原始问题中问这个问题,有5个人会说,不要添加太多讨论,开始一个新问题,而不是特殊情况;这是同样的情况。这是一个完全相同的问题,只是稍微重述一下,都回到了同一点:上方向向量是什么意思。在这3个问题上,我们已经用6种不同的方式向您解释了它,从代码实现的详细列表到上方向向量含义的散文描述。因此,如果有人理解1/2或3/4,而不是u理解1/0,你会大喊并说:不,这是同样的情况!!我要说(我什么都没喊,你才是使用CAPS LOCK的人)真相:这是同一个案例,因为它是同一个案例。它不会因为你没有完全理解它而停止成为同一个案例。这就是为什么我们有评论的部分原因:这样你可以要求澄清你不完全理解的答案。这是我为什么讨厌人们“学习”的最好例子使用固定函数管道的OpenGL。您对该问题的理解意味着,如果您更改查看轴,您将完全不知所措,因为您认为上方向向量围绕Z轴旋转。请参阅,问题与XY或Z平面无关。上方向向量不处理XY旋转。它处理的是绕Z轴旋转nd视图轴,在您的情况下正好是Z轴。那么,上方向向量在XY平面上的分量是否与您围绕视图轴(Z轴)的“旋转”相同?