2012-01-24 35 views
2

私はopenglに慣れていないし、x、y画面座標をそれぞれのOpenGLワールド座標に変換する方法を理解しようとしている。私が今までに見つけたすべての例では、GLU.gluUnProject()を使って2つの座標系を変換していますが、このメソッドはOpenGL 2.0で使用できるかどうかわかりません。投影およびモデルビュー行列。 gluUnProjectを使用する他の例は、OpenGL es 1.X固有のMatrixGrabberクラスを使用して行列にアクセスします。私は座標系間で変換するために頂点シェーダを使用するiphoneの例も見つけましたが、この技法を動作させることはできませんでした。 2D画面座標を2D世界座標に変換する簡単な方法があるようです。どんな助けでも大歓迎です。ありがとうございました。android opengl es 2.0画面座標をワールド座標に変換する

答えて

0

あなたの前提が正しくないため、画面座標を世界座標に変換する簡単な方法はありません。

2次元スクリーン座標と既存のビューおよび投影行列が与えられている場合、(深度バッファがあれば)深度バッファをサンプリングする以外に、正しいz座標を決定する方法はありません。

視点錐台に2d点を投影すると、光線(または近いクリッピング面に投影された点から遠いクリッピング面に投影された点までの線分)のみが表示されます。

は、Javaを使用しているが、私はとにかくそれを言及するつもりだとして、次のポイント以外にも可能性がありますあなたがC++を使用することを検討している場合、私はあなたがGLMライブラリをチェックアウトをお勧め:http://glm.g-truc.net/

それは非推奨のための代替品を提供glm :: projectやglm :: unprojectのようなgl関数です。 これは、OpenGLマトリックススタックとglu関数の優れた代替品です。

これはあなたの質問に答えるのに役立ちます。がんばろう。

関連する問題