2011-09-13 11 views
0

私は、携帯電話をさまざまな向きに傾けて多角形の異なる面を作りたいと思う単純なジャイロテストアプリを書いています。これはヘッドトラッキングレンダリング手法に似ていますが、私は固定されたアイポジションを想定しており、携帯電話だけがアイ(カメラ)に対して移動します。左/右方向に歪んだ錐台があるAndroid OpenGLの問題

これを行うには、私はopenglで歪曲した錐台のトリックを使用しました。私は問題なく上/下/近/遠の方向に錐台を相殺することができました。私がオフセット値を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]); 

:ここ

は、左/右方向に2分周バグと作業サンプルコードですか?

+0

関連する可能性がありますhttp://stackoverflow.com/questions/11697728/why-does-the-matrix-generated-by-androids-frustumm-differ-from-the-redbooks –

答えて

0

投影にLook-Atマトリックスを適用します。あなたはこれをしてはいけません。投影変換は「仮想レンズ」のプロパティを設定するだけです。カメラの配置は、モデルビュー変換で行われます。

照明を実装する際に、これらの2つの別々の原因の問題を解決しないでください。

+0

https://code.google .com/p/android/issues/detail?id = 35646いいえ、それはフレームワークのバグです。 – PawelP

関連する問題