2012-01-15 50 views
1

我是JOGL新手,但基礎知識遇到問題。我認爲這是與相機角度有關,但林不知道。我甚至不知道是否所有的代碼甚至是必要的,或者如果我需要更多的代碼。JOGL多維數據集問題入門

它使最後繪製的邊與第一個邊重疊(如果後面在前面繪製,後面與前面重疊)。這可能與每幀之後的深度或刷新變量有關。

軸應該穿過立方體的中心,但由於某些原因立方體會被切斷,並且不能正確顯示兩側。頂部的座標是相機的「眼睛」位置(與gluLookAt()前3個參數相關的浮點數)。立方體是0.5X.5X.5,以0,0,0爲中心(因此每個軸延伸0.25)。

我不能發佈照片又那麼這裏是我的截圖:http://www.flickr.com/photos/[email protected]/sets/72157628882982925/

我JFrame的延伸和實現GLEventListener。這是從我的構造我的OpenGL代碼:

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(); 

顯示方法(與立方體和軸代碼一起):

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); 

init方法:

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); 

重塑方法:

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

我認爲你的一些顯示方法代碼丟失了。 – 2012-01-15 19:11:02

回答

2

我明白了,我需要ena ble GL_DEPTH_TEST我需要使用glRotatef()glTranslatef()來旋轉相機周圍的世界,而不是使用gluLookAt()將相機移到世界各地。