0

jogl でポリゴンに色を付けようとしています。頂点を配列、三角形の順序のインデックス配列、および色の配列に格納しました。コードは次のとおりですが、私が直面している問題は、三角形が白であり、カラー バッファーの色ではないことです。

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

NASAの世界の風球でこのレンダリングを行っています。しかし、私はそれが問題を引き起こすべきではないと思います。誰かが問題を解決するのを手伝ってくれますか? 私はしばらくこれにこだわっています。

ありがとう、

4

1 に答える 1

0

色と素材を有効にするだけで解決しました。

   gl.glEnable(GL2.GL_COLOR_MATERIAL);
   gl.glColorMaterial(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE);
于 2015-05-08T09:46:38.590 に答える