0

スマートフォンをさまざまな方向に傾けることで、ポリゴンのさまざまな側面を可能にしたい簡単なジャイロテストアプリを作成しています。これは、ヘッドトラックレンダリング手法に似ていますが、目の位置が固定されていると想定し、電話だけが目(カメラ)に対して移動します。

これを行うために、私はopenglesで歪んだ錐台トリックを使用しました。上/下/近/遠方向の錐台を問題なくオフセットできました。オフセット値を2で割った場合にのみ、左右の方向が機能するようになったときに、本当に奇妙な部分が発生しました。錐台を実際の状態から効果的に「縮小」します。

左/右方向に2で割るバグがある作業サンプルコードを次に示します。

// xEyePhone is the transform of eye relative to the screen, note the /2.0f for the 3rd and 4th params. 
Matrix.frustumM(_ProjMatrix, 0, -ratio-xEyePhone[12]/2.0f, ratio-xEyePhone[12]/2.0f, 1-xEyePhone[13], 1-xEyePhone[13], xEyePhone[14], xEyePhone[14]+10);

Matrix.setLookAtM(_VMatrix, 0, xEyePhone[12], xEyePhone[13], xEyePhone[14],
XEyeCenterWorld[12], xEyeCenterWorld[13], xEyeCenterWorld[14],
XUpVectorWorld[12], xUpVectorWorld[13], xUpVectorWorld[14]);

誰かがこれに出くわしましたか?

4

1 に答える 1

0

投影にルックアット マトリックスを適用します。これを行うべきではありません。射影変換は、「仮想レンズ」のプロパティのみを設定します。カメラの配置は、モデル ビューの変換で行われます。

これら 2 つを別々に保持しないと、照明を実装するときに問題が発生します。

于 2011-09-13T07:42:46.913 に答える