Frage:
Verwendung des Go-Pakets github.com/banthar/gl , der Tutorial-Code von http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/ erstellt erfolgreich ein Fenster und legt die Hintergrundfarbe fest, zeigt jedoch kein Dreieck an. Der entsprechende C-Code zeigt das Dreieck an. Warum?
Antwort:
Die Fehler können auf falsche Argumente zurückzuführen sein, die an die AttribPointer-Funktion übergeben wurden. Die folgenden Anpassungen wurden identifiziert, um das Problem zu beheben:
Korrigierter Go-Code:
package main import ( "github.com/banthar/gl" "github.com/go-gl/glfw/v3.2/glfw" "log" ) func main() { // ... ( GLFW window setup, GL initialization code) ... // Create vertex buffer gVertexBufferData := []float32{-1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 0.0, 1.0, 0.0} vertexBuffer := gl.GenBuffer() vertexBuffer.Bind(gl.ARRAY_BUFFER) gl.BufferData(gl.ARRAY_BUFFER, len(gVertexBufferData)*4, gVertexBufferData, gl.STATIC_DRAW) for { // ... (Clear screen, enable/disable vertex attrib, draw triangle) ... vertexAttrib.AttribPointer( 3, // Size gl.FLOAT, // Type false, // Normalized? 0, // Stride nil) // Array buffer offset // ... (Continue drawing loop) ... } }
Das obige ist der detaillierte Inhalt vonWarum kann ich trotz erfolgreicher Fenster- und Hintergrundeinrichtung kein Dreieck mit go-gl/glfw und github.com/banthar/gl anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!