2011-12-25 8 views
2

私はレンダラーを設定しようとしていますが、デバイスに関係なく、ビューは画面の上部が1.0f、下部が-1.0fである単純な2Dフィールドです。 onSurfaceChanged()メソッドで以下のメソッドを使用して、gluPerspectiveのパラメータを使用して目的の効果を達成していますが、完璧にすることは不可能です。確かに、私が後にしていることを達成するためにこれについて行く別の方法があります。私はまた、それらを一致させるために描かれたメッシュのZ値で遊んできました。OpenGL ESレンダラを2D用にセットアップしますか?

もう一度、スクリーンが-1.0f〜1.0の範囲で定義されているようにしています.2.0fに等しい辺の四角形を描画すると、アスペクトに関係なく画面全体が塗りつぶされるようになります比。これを行うには何を変更する必要がありますか? (私はメッシュの頂点のZ寸法に使用する値が含まれる)

(gluPerspectiveでで奇妙なパラメータ()、私は何が起こるかを見るためにいじってきました。で心配しないでください)

@Override 
public void onSurfaceChanged(GL10 gl, int width, int height) { 
     if(height == 0) {      //Prevent A Divide By Zero By 
      height = 1;       //Making Height Equal One 
     } 

     gl.glViewport(0, 0, width, height); 
     gl.glMatrixMode(GL10.GL_PROJECTION); 
     gl.glLoadIdentity(); 
     GLU.gluPerspective(gl, 90.0f, (float) width/(float) height, 
        0.0000001f, 100.0f); 
     gl.glMatrixMode(GL10.GL_MODELVIEW); 
     gl.glLoadIdentity(); 
    } 

答えて

2

glOrthoまたはglFrustumを使用しての実験をしようとする場合があります:

Matrix.orthoM(projectionMatrix,0,-yourdisplayWidth/2,+yourdisplayWidth/2,-yourdisplayHeight/2,+yourdisplayHeight/2,0f,2f); 

カメラの前に1フィートの距離にイメージクワッドを置くことができます。クワッドの大きさはピクセル単位である必要があります。この方法で、pixelperfectをレンダリングできます。

も参照してください。https://github.com/Chrise55/Llama3D

1

かわりに、オーソ行列を生成代わりglPerspective

関連する問題