Problem mit dem OpenGL-Scheitelpunktpuffer in Go
Bei dem 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:
vertexAttrib.AttribPointer(
3, // size
gl.FLOAT, //type
false, // normalized?
0, // stride
nil) // array buffer offset
data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0}
[...]
gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)
[...]
Zusätzliche Hinweise
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3