2011-12-23 17 views
2

私はOpenGL ES 1.1とテクスチャマッピングを使用しています。私はいつもテクスチャのUV座標系は左上から始まり右下に行くと考えました。これはアンドロイドでいいです、私はそれをテストしました。しかし、デスクトップ上でQtでテストすると、私のUV座標系は左下から始まり右上に移動します。それは大丈夫ですか? glOrthofは、AndroidでサポートされていないQtとglOrthoによってそこにサポートされていないされて、なぜ私は、また、セットアップのOpenGLOpenGL ESのUV座標は異なりますか?

glViewport(0, 0, m_screenWidth, m_screenHeight); 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 

#ifdef DESKTOP_QT 
glOrtho(0, 1, 0, 1, -1, 1); 
#else 
glOrthof(0, 1, 0, 1, -1, 1); 
#endif 

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 

私は不思議に同じコードを使用していますか?両方のフレームワークで共通の機能はありますか?

答えて

2

デフォルトでOpenGLでは、テクスチャ座標(0,0)はテクスチャの左下隅に対応しています。 OpenGLが存在して以来、いつもそうなってきた(そしておそらくそうなるだろう)。

テクスチャマトリクスを変更するか、テクスチャを下から上に反転して保存するだけで、この規約を変更することができます。

ところで、glOrthoはQtやAndroidとは関係がありません。OpenGLの機能です。だからあなたが経験していることは、QtとAndroidの違いではなく、デスクトップのOpenGLとOpenGL ESの違いです。それにもかかわらず、テクスチャ座標は両方のバージョンの左下隅から始める必要があります。

+0

ここから見ることができますhttp://www.youtube.com/watch?feature=player_detailpage&v=_WcMe4Yj0NM#t=2439sスタンフォード大学のOpenGL ESチュートリアルですが、その人は間違っている可能性があります。 UV座標は左上から始めるべきです – psyched

+0

@ user1113852たぶん、この男は理論的なテクスチャのコンセプトなどについて語ります。しかし、** OpenGLでは、テクスチャ座標系は左下隅から始まります**。もしあなたが私にもう一度尋ねるなら、それを大胆で控えめな手紙で得ることができます。 –

+0

あなたはどんな文字を使っても構いませんが、アンドロイドには私のy-down UV座標があります。神のために、なぜそれが起こっているのですか? – psyched

0

テクスチャが左下から始まり、右上に移動していることをどのように知っていますか?私は、テクスチャマッピングのこのタイプのオリエンテーションについて聞いたことがありません。

+1

実際、これはOpenGLがこれを行ったのとまったく同じ方法であり、最初からそれを実行します。 –

+1

@ChristianRauはもう少し丁寧であることを提案できますか?彼はおそらく、あなたの誇りの羽をあなたの意見に賛成ではないと言って、あなたが誇りを持っていることに気づいていますが、あなたが返信している方法で皮肉になる必要はありません。あなたが涼しいを保つことができない場合は、ちょうど歩き、他に何かを見つける。 –

+1

@AscensionSystems私は、そのコメントを無礼な、あるいはあまりにも皮肉なものとは考えていません。彼は、テクスチャマッピングのためのこのタイプのオリエンテーションを聞いたことはありません。OpenGLについての質問に答えるために使用されたときにはかなり強い言葉です(このタイプのオリエンテーションはいつも標準であり、常に標準になります)。しかし、まあ、もしあなたがそれを無礼、政治的に間違っている、または傲慢であると感じるなら、それを攻撃的とみなしてください。 –

関連する問題