2016-11-22 3 views
0

私はAndroidのMatrixクラスを使用して行列変換を行うための必要なメソッドを提供していますが、特定のパラメータで使用すると、計算の残りの部分を壊すので、どこにどこからともなく指してカメラを設定するゼロで..Android MatrixのsetLookAtMはゼロ除算の結果を返します

私はマトリックスのsetLookAtM次のパラメータを使用してを呼び出しています:

eyeX: 0, 
eyeY: 0, 
eyeZ: -10.9 

centerX: 0, 
centerY: 0, 
centerZ: 5 

upX: 0, 
upY: 0, 
upZ: 1 

したがって、5 Zに-10.0 Zから見て、 Zは上を指し、下からモデルを見ていることを意味します。

しかし、計算を行うメソッドが「s」と呼ばれるものを正規化するとき、sの長さが明らかにゼロであるため、ゼロで割ります。

実装が間違っているのですか、まったくダミーのものがありますか?ここには表示されません。

setLookAtMメソッドは、たとえばhereを参照してください。

答えて

0

あなたはあなたの世界の空間(つまり、重力が適用される方向の反対側)にあるものになるように設定しようとしています。あなたが望むものになるには、上のベクトルが必要です。カメラの視点から上に向かってください。つまり、カメラオブジェクトの上に真っ直ぐ上を向いている小さなスティックがあるとします。レンズが向いている方向は決して決してありません。

カメラが真上を向いている場合でも、z軸回りにねじれたり回転したりする自由があります。上のベクトルはその回転を定義します。

関連する問題