Hallo,
ich möchte die Axen malen…
###Ausgangssituation:
Die Axen werden zwar korrekt gemalt, aber die Farben stimmen nicht, 2x rot, rot und grün, rot und grün.
###Render-Code:
if (filename.equals("axis")) {
float[] vertices = new float[]{
0.f, 0.f, 0.f,
20.f, 0.f, 0.f,
0.f, 20.f, 0.f,
0.f, 0.f, 20.f
};
FloatBuffer verticesBuffer = BufferUtils.createFloatBuffer(vertices.length);
verticesBuffer.put(vertices).flip();
vbo1 = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vbo1);
glBufferData(GL_ARRAY_BUFFER, verticesBuffer, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0); // ?
float[] colors = new float[]{
1f, 0f, 0f,
1f, 0f, 0f,
0f, 1f, 0f,
0f, 1f, 0f,
0f, 0f, 1f,
0f, 0f, 1f};
FloatBuffer colourBuffer = BufferUtils.createFloatBuffer(colors.length);
colourBuffer.put(colors).flip();
vbo2 = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vbo2);
glBufferData(GL_ARRAY_BUFFER, colourBuffer, GL_STATIC_DRAW);
glVertexAttribPointer(1, 3, GL_FLOAT, false, 0, 0); // ?
int[] indexes = new int[]{
0, 1, 0, 2, 0, 3
};
IntBuffer indexesBuffer = BufferUtils.createIntBuffer(indexes.length);
indexesBuffer.put(indexes).flip();
vbo3 = glGenBuffers();
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo3);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indexesBuffer, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
modelLoc = -1;
viewLoc = glGetUniformLocation(programID, "V");
projectionLoc = glGetUniformLocation(programID, "P");
withModel = false;
}
// ...
v.get(fb);
glUniformMatrix4fv(viewLoc, false, fb);
p.get(fb);
glUniformMatrix4fv(projectionLoc, false, fb);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vbo1);
glVertexAttribPointer(
0, // attribute. No particular reason for 0, but must match the layout in the shader.
3, // size ????
GL_FLOAT, // type
false, // normalized?
0, // stride
0 // array buffer offset
);
glEnableVertexAttribArray(1);
glBindBuffer(GL_ARRAY_BUFFER, vbo2);
glVertexAttribPointer(
1, // attribute. No particular reason for 0, but must match the layout in the shader.
3, // size ????
GL_FLOAT, // type
false, // normalized?
0, // stride
0 // array buffer offset
);
// Index buffer
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo3);
glDrawElements(GL_LINES, 2 * 3, GL_UNSIGNED_INT, 0); // ????
// Disable our location
glDisableVertexAttribArray(0);
glBindVertexArray(0);
Stellen, wo ich mir unsicher bin, wegen size usw., hab ich mit ? versehen.
Danke wer mir da einen Tipp gibt
Ich wäre auch für allgemeine Tipps dankbar