1

modelviewMatrix については、Matrix の変換とスケーリングの方法を理解しています。しかし、を使用してviewMatrixを形成する方法を理解できませんGLKMatrix4MakeLookAt。それがどのように機能し、パラメータに値を与える方法を誰でも説明できますか(目の中心がXYZ)。

GLK_INLINE GLKMatrix4 GLKMatrix4MakeLookAt(float eyeX, float eyeY, float eyeZ,
                                                  float centerX, float centerY, float centerZ,
                                                  float upX, float upY, float upZ)
4

1 に答える 1

5

GLKMatrix4MakeLookAtgluLookAt表示行列を作成します (他の OpenGL コードを見る場合と同じ方法で)。パラメータが示唆するように、視聴者の目の位置、彼らが見ている空間内のポイント (オブジェクト上のポイントなど)、および「上」の方向を指定するアップベクトル (たとえば、空に向かって)。生成される表示行列は、回転行列 (一連の正規直交基底 [基底ベクトル] で構成される) と平行移動の組み合わせです。

論理的には、マトリックスは基本的にいくつかのステップで構築されます。

  1. 視線ベクトル を計算します。これは、目の位置から見ている点 (中心点) に向かう正規化されたベクトルです。
  2. 視線ベクトルアップベクトルの外積を計算し、結果のベクトルを正規化します。
  3. ステップ 2 で計算されたベクトルと視線との外積を計算して、正規直交基底を完成させます。
  4. 最初の行を手順 2. で作成したベクトルに設定し、中央の行を手順 3. のベクトルに設定し、下の行を否定され正規化された視線ベクトルに設定して、3x3 回転行列を作成します。

これらの 3 つの手順により、ワールド座標系を回転させて目の座標 (目が原点にあり、視線が -z 軸を下る座標系) になる回転行列が生成されます。最終的な表示行列が計算されます。否定された目の位置への変換を乗算することにより、「世界座標に配置された目」を目の座標の原点に移動します。

のコードを示す関連する質問を次に示しますGLKMatrix4MakeLookAt。また、目の座標と関連する座標系についてより詳細な質問を次に示します: (正確には、目の空間座標とは何ですか? ) 。

于 2013-12-17T14:26:06.247 に答える