0

私は非常に多くのチュートリアルを経験し、OpenGL でいくつかの小さなアプリも実装しました。それでも、OpenGL 座標系から Android ビュー座標系へのマッピングについて混乱しています。テクスチャを全画面表示しようとしたところ、問題が発生しました。ヒット&トライアルの方法で何とか全画面表示できたのですが、疑問が多くてなかなか進めませんでした。

  1. OpenGL 座標系では、左下 (原点) から始まりますが、デバイスでは左上が原点です。物事がデバイスに正しくマッピングされる方法。

  2. OpenGL では、-1 から 1 までの頂点範囲を指定します。これらの範囲が、0 から幅と高さの範囲でデバイスにマップされる方法。

  3. 頂点は、デバイス座標とまったく同じ方法でマップできます。同様に、0,100 の頂点は 0,100 のデバイス座標にマップされます。

テクスチャをフルスクリーンで表示しようとしているときに、いくつかのブログに従ってコードを変更し、機能しました。変更点は次のとおりです。

glOrtho(0, width, height, 0, -1, 1);  from  glOrtho(0, width, 0, height, -1, 1);  

 &   vertices[] = {                            
       0, 0,
      width, 0,
      width, height,                
      0, height
      };

  from  {-1,-1,
          1,-1,
         -1,1,
           1,1}

座標マッピングを理解するのを手伝ってください。

4

1 に答える 1

1

glOrtho を幅と高さに設定したもの opengl は、使用しているデバイスに合わせてそれを引き伸ばします。たとえば、glOrth(0,width,height,0,1,- 1)openglはそれを画面に合わせて拡大するため、glOrth()の幅と高さを設定することで、座標を好きなように設定できます

于 2013-02-17T00:22:03.393 に答える