2015-05-08 49 views
0

我正嘗試在jogl中爲我的多邊形着色。我已將頂點存儲在數組中,三角形順序的索引數組和顏色數組。代碼如下,但我面臨的問題是三角形是白色的,而不是來自顏色緩衝區的顏色。在jogl中使用VAO應用顏色

float f[] = {1000,2000,-4000,-2000,-2000,-4000,2000,-2000,-4000,1000,-4000,-4000}; 
    FloatBuffer buffer = GLBuffers.newDirectFloatBuffer(12); 
    this.coordCount = 12; 
    buffer.put(f); 
    buffer.rewind(); 

    int indx[] = {0,1,2,1,3,2}; 
    IntBuffer indxBuffer = GLBuffers.newDirectIntBuffer(6); //Total number of vertices 
    this.indexCount = 6; 
    indxBuffer.put(indx); 
    indxBuffer.rewind(); 

    float color[] = {1,0,1,0,0,0,0,0,0,1,0,0}; 
    FloatBuffer colorBuffer = GLBuffers.newDirectFloatBuffer(12); 
    colorBuffer.put(color); 
    colorBuffer.rewind(); 

    gl.glDisable(GL.GL_TEXTURE_2D); 
    gl.glEnableClientState(GLPointerFunc.GL_COLOR_ARRAY); 
    gl.glEnableClientState(GLPointerFunc.GL_VERTEX_ARRAY); 
    gl.glFrontFace(GL.GL_CCW); 

    gl.glVertexPointer(3, GL.GL_FLOAT, 0, buffer); 
    gl.glColorPointer(3, GL.GL_FLOAT, 0, colorBuffer); 

    gl.glDrawElements(GL.GL_TRIANGLES, this.indexCount, GL.GL_UNSIGNED_INT, indxBuffer); 

    gl.glDisableClientState(GLPointerFunc.GL_COLOR_ARRAY); 
    gl.glDisableClientState(GLPointerFunc.GL_VERTEX_ARRAY); 
    gl.glEnable(GL.GL_TEXTURE_2D); 

我正在美國國家航空航天局世界風球上做這個渲染。但我認爲這不會造成任何問題。有人可以幫我找出問題嗎?我被困在這一段時間。

謝謝,

回答

0

得到的解決方案,只需啓用顏色和材料。

gl.glEnable(GL2.GL_COLOR_MATERIAL); 
    gl.glColorMaterial(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE);