-3

重複の可能性:
OpenGLのLookAt関数のUPベクトルは正確には何ですか?

これは次のことに関連しています。OpenGLのLookAt関数のUPベクトルとは正確には何ですか。

呼び出しが次の場合:

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

iPadを目の前に持って、まっすぐ前を向いている椅子に座っていると、頭のてっぺんが空を上に向けています。したがって、(0, 1, 0)3行目のように、UPベクトルの場合。に変更したらどう(0, 0.00001, 1)ですか?つまり、私はほとんど横になっていて、今は顔と目が空を向いているということです。では、どうして結果が私が使用したときとまったく同じになるの(0, 1, 0)でしょうか?

4

2 に答える 2

1

何が起こると予想できますか?

カメラの位置、カメラが見る位置、および上方向の 3 セットの値を渡します。あなたの類推では、空を見上げている場合、iPad を見ているわけではありません。したがって、視線位置は上方向に沿って変化したに違いありません。また、視線の位置を変更しなかった場合、上方向を変更したときに何が起こると予想されますか?

上方向は、見ている場所に対する上方向の位置にのみ影響します。見ているものを変更したい場合は、実際に注視点を変更する必要があります。それがそこにある理由です。

于 2012-05-17T13:52:19.767 に答える
-2

試行錯誤の末、OpenGL を 1 日学習し始めたばかりなので、アップ ベクトルには、カメラからターゲットへのベクトルに対して「垂直」(または垂直) な平面内にいくつかのコンポーネントが必要です。

つまり、例では (512, 384, 2000) から (512, 384, 0) までなので、ベクトルは Z 方向のみです。アップ ベクトルには、XY 平面上にいくつかのコンポーネントが必要です (XY 平面は、Z 方向のみを持つベクトルに垂直な平面です)。

x 成分も y 成分もない場合、つまり両方とも 0 の場合、私の iPad 2 では画像がまったく表示されません。したがって、この場合、Up ベクトルは XY 平面での回転を扱い、Z 方向についてはまったく扱いません。

于 2012-05-17T16:09:05.117 に答える