2016-10-26 9 views
0

現在の割り当てでは、OpenGLで古い固定パイプラインメソッドを使用する必要があります。私たちはLWJGL 2.9.3を使用しています。次のコードは、三角形を表示します。問題は、狂ったようにちらつきます。 Display.swapBuffers()メソッドは例外をスローしません。それをインクルードするかどうかは異なりません。OpenGLでのシンプルな三角レンダリングでのちらつき

gluPerspective, glViewport, gluLookAt and the GL_PROJECTION and GL_MODELVIEW Matricies

glViewport(0, 0, Display.getWidth(), Display.getHeight()); 

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glOrtho(0, 10, 0, 10, -1, 100); 

glMatrixMode(GL_MODELVIEW); 
glClear(GL_COLOR_BUFFER_BIT); 

gluLookAt(0, 0, 0, 0, 0, 1, 0, 1, 0); 
glBegin(GL_POLYGON); 
    glVertex3d(1, 1, 1); 
    glVertex3d(1, 5, 1); 
    glVertex3d(5, 5, 1); 
glEnd(); 
glFlush(); 
try { 
    Display.swapBuffers(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

EDIT

もうひとつ:私はこのStackOverflowの質問をオフに基づいて、この例を作成しました。 glMatrixMode(GL_MODELVIEW)の後にglLoadIdentity()を呼び出すと、gluLookAt()メソッドが無視されるようになります。私はそれを行うと黒い画面が表示されます。しかし、もし私がそうでなければ、それは(私が0,0,0から目の位置を変えれば)それ自体に乗算を続けます。

答えて

0

ちらつきの原因は、gluLookAt()関数が見た目の異なる方向の間を行き来することでした。

+0

したがって、基本的には 'glLoadIdentity()'を追加して、 'gluLookAt'が間違った方向に見えていることを知りましたか? – ybungalobill

+0

うん。それは間違った方向を見ていました。目が(0,0,0)にあり、視点が(0,1,0)にある場合は、Y軸を見下ろす。ポリゴンはX/Y平面に平行でした。私は間違った場所に1を置く。 – AaronF

関連する問題