3

以下のコードを使用して投影ビューをセットアップしているとします。

float aspect = fabsf(self.view.bounds.size.width / self.view.bounds.size.height);
GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(65.0f),     aspect, 4.0f, 10.0f);    
self.effect.transform.projectionMatrix = projectionMatrix;

シーン内の特定のポイントをカメラに向けたい場合、どうすればこれを実現できますか? 現在、オブジェクトを移動してビューの中央に配置するように modelViewMatrix を変更していますが、projectionMatrix を何らかの方法で操作することで同じことを達成できるかどうか疑問に思っています。

4

1 に答える 1

2

優れた 3D プログラミングの基本チュートリアル (このようなもの) が教えてくれるように...

  • モデルマトリックスは、頂点座標をモデル空間 (メッシュが指定されている座標空間であり、通常はシーン内のモデルを配置する場所を認識していません) からワールド空間 (シーンの概念空間) に変換します。
  • ビューマトリックスは、ワールド空間から視点空間 (つまり、シーンを表示する「カメラ」に相対的な座標系) に変換します。
  • プロジェクションマトリックスは、目の空間からクリップ空間に変換します (画面を表す -1.0 から 1.0 の立方体と、GPU がピクセル空間に変換する深度を足したもの)。

射影行列は、視点に対して相対的に機能します。目がどこにあり、どの点を見ているかはすでに固定されているため、射影行列は視野角、縦横比、近距離および遠距離のクリッピング面のみを変更します。 . 見ているポイントを変更したい場合はLookAt、ビュー マトリックスに別の変換を指定します。

于 2013-10-28T23:23:29.577 に答える