2

3D空間で自由に移動できるカメラを作ろうとしています。glulookat 関数は次のようになります。

 gluLookAt(g_eye[0],g_eye[1],g_eye[2],
           g_look[0],g_look[1],g_look[2],
           0,1.0,0    
        );

最初の 3 つの座標は、カメラの位置です。最後の 3 つの座標は、カメラの回転に関するものです。

2 番目の 3 つの座標は、カメラが見ている場所のようです。

しかし、2 番目の 3 つの座標が必要な理由がよくわかりません。それは私たちの見方にどのように影響しますか?

例: カメラが原点から開始する場合、カメラは右に 30 度回転し、-Z 方向に 10 度移動します。それから、カメラが今どこに配置されているかがわかります。しかし、2 番目の 3 つの座標には何を入力すればよいでしょうか?

  1. 原点にあるカメラ ここに画像の説明を入力

  2. ある程度右折ここに画像の説明を入力

  3. 前進する ここに画像の説明を入力

4

2 に答える 2

4

しかし、2 番目の 3 つの座標が必要な理由がよくわかりません。それは私たちの見方にどのように影響しますか?

あなたの頭は、最初の 3 つのパラメーターの座標にあります。

これを読んでいるときにあなたが見ているオブジェクトは画面で、2 番目の 3 つのパラメーター

これまでに読んだアップベクターのテキストでは、最後のパラメーターは (0, 1, 0) に近いものでした。

ここに画像の説明を入力

于 2013-02-13T12:05:05.753 に答える
3

の位置 (最初の 3 つの座標) と視点(次の 3 つの座標) によって、視線が定義されます。最後の 3 つの座標であるアップベクトルは、視線の周りの回転角度を決定するために使用されます。OpenGL での回転には、回転する軸が必要です。これが、最初の 2 つの座標セットの理由です。OpenGL での変換の表示の詳細については、こちらをご覧ください。

于 2013-02-13T06:43:07.980 に答える