Versuch der Übungen mit Buffern
Um die Inhalte zu vertiefen gibt es drei Übungen auf der Seite. In der ersten Übungen sollen zwei Dreiecke nebeneinander mithilfe der Funktion glDrawArrays gezeichnet werden, indem weitere Vertices den Daten hinzugefügt werden. Das ging recht einfach:
// set up vertex data (and buffer(s)) and configure vertex attributes
// ------------------------------------------------------------------
float vertices[] = {
// first triangle
-0.9f, -0.5f, 0.0f, // left
-0.1f, -0.5f, 0.0f, // right
-0.5f, 0.4f, 0.0f, // top
// second triangle
0.1f, -0.5f, 0.0f, // left
0.9f, -0.5f, 0.0f, // right
0.5f, 0.4f, 0.0f // top
};
Und natürlich die Funktion glDrawArrays auf Anzahl sechs geändert, das ist die Angabe für die zu rendernden Vertices: glDrawArrays(GL_TRIANGLES, 0, 6).

In der zweiten Übung soll jedes Dreieck mit einem eigenen VBO und einem eigenem VAO gezeichnet werden. Und an dieser Stelle ist mir dann der glVertexAttribPointer deutlich geworden. Ich habe nämlich versucht die neuen VBOs und VAOs direkt anzusprechen, jedoch kann immer nur ein VBO zur Zeit gebunden werden. Nachdem das geklärt war, hat mein Code funktioniert.
In der letzten Übung soll man zwei verschiedene Shader-Programme erstellen, wobei eines davon einen anderen fragment shader einsetzen soll um eines der Dreiecke gelb zu zeichnen. Diese Aufgabe war recht einfach (man übernimmt einfach die Erstellung des ersten Shaders und münzt ihn mit dem Fragment shader auf die Farbe gelb). Das Ergebnis:

Und auf zum nächsten Kapitel.
No Comment