2012-01-15 2 views
1

JOGL을 처음 사용하지만 기본 사항에 문제가 있습니다. 나는 카메라 각도와 관련이 있다고 생각하지만 확실하지는 않습니다. 나는이 모든 코드가 필요한지 또는 더 필요한지조차 모른다.JOGL 큐브 문제 시작하기

마지막으로 그려진면이 첫 번째면과 겹치도록 만듭니다 (앞면 뒤쪽을 뒤에서 그렸을 때 앞면을 뒤집는 경우). 깊이와 관련이 있거나 각 프레임 이후에 변수를 새로 고칠 수도 있습니다.

축은 큐브의 중앙을 통과해야하지만 큐브는 어떤 이유로 잘라지며 올바르게 표시되지 않습니다. 맨 위에있는 좌표는 카메라의 "눈"위치입니다 (gluLookAt() 첫 번째 3 개 매개 변수와 관련된 부동 소수점). 큐브는 0,0,0을 중심으로하는 .5X.5X.5입니다 (따라서 각 축에서 0.25가 확장됩니다).

난 후 사진을 캔트 아직 그래서 여기 내 스크린 샷입니다 : 내가 JFrame의 확장 및 구현하고 http://www.flickr.com/photos/[email protected]/sets/72157628882982925/

GLEventListener.

GL2 gl = drawable.getGL().getGL2(); 
gl.glLoadIdentity(); 
GLU glu = new GLU(); 
glu.gluLookAt(eyeX, eyeY, eyeZ, 0, 0, 0, 0, 1, 0); // sets camera angle 
gl.glClear(GL.GL_COLOR_BUFFER_BIT); 

초기화 방법 :

GL2 gl = drawable.getGL().getGL2(); 
gl.glClearColor(0, 0, 0, 0); 
gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION); 
gl.glLoadIdentity(); 
gl.glOrtho(-1, 1, -1, 1, -1, 1); 

모양 변경 방법 :

(큐브 및 축 코드와 함께)

GLCapabilities caps = new GLCapabilities(null); 
caps.setRedBits(8); 
caps.setGreenBits(8); 
caps.setBlueBits(8); 
caps.setAlphaBits(8); 
caps.setDoubleBuffered(false); 
caps.setHardwareAccelerated(true); 

GLCanvas canvas = new GLCanvas(caps); 
canvas.addGLEventListener(this); 
canvas.addKeyListener(this); 
add(canvas, BorderLayout.CENTER); 

anim = new FPSAnimator(canvas, 60); 
anim.setUpdateFPSFrames(10, null); 
anim.start(); 

표시 방법 : 이것은 내 내 생성자에서의 OpenGL 코드

GL2 gl = drawable.getGL().getGL2(); 
gl.glViewport(0, 0, width, height); 
+0

표시 메소드 코드 중 일부가 누락되었다고 생각합니다. –

답변

2

나는 그것을 얻을, 나는 ena해야한다. ble GL_DEPTH_TEST 그리고 전 세계 카메라를 이동하려면 gluLookAt()을 사용하는 대신 glRotatef()glTranslatef()을 사용하여 카메라 주위를 회전시켜야합니다.