Problem mit dem OpenGL-Scheitelpunktpuffer in Go
Beim Versuch, ein Dreieck mithilfe von OpenGL in Go anzuzeigen, stieß ein Benutzer auf ein Problem mit dem Scheitelpunkt Puffer konnte die Form nicht rendern. Der Go-Code wurde aus einem Tutorial abgeleitet, erzeugte aber im Gegensatz zu seinem C-Gegenstück keine Ausgabe.
Ursache des Problems
Die Grundursache des Problems lag in den Argumenten, die an vertexAttrib.AttribPointer() übergeben wurden. Insbesondere hatte der Benutzer fälschlicherweise (void*)0 als Array-Puffer-Offset angegeben. Dies führte dazu, dass die Anwendung die Scheitelpunktdaten nicht finden konnte.
Lösung
Um das Problem zu beheben, wechselte der Benutzer zum Arbeitszweig der Banthar-Bindungen und erstellte die Folgende Anpassungen:
<code class="go">vertexAttrib.AttribPointer( 3, // size gl.FLOAT, //type false, // normalized? 0, // stride nil) // array buffer offset</code>
<code class="go">data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0} [...] gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW) [...]</code>
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWarum wird mein OpenGL-Dreieck in Go nicht gerendert? Untersuchung eines Vertex-Pufferproblems.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!