问题:
使用 Go github.com/banthar/gl 包,http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/ 中的教程代码成功创建了一个窗口并设置了背景颜色,但无法显示三角形。等效的 C 代码确实显示了三角形。为什么?
答案:
错误可能是由于传递给 AttribPointer 函数的参数不正确造成的。已确定以下调整可解决该问题:
更正的 Go 代码:
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) ... } }
以上是尽管窗口和背景设置成功,为什么我无法使用 go-gl/glfw 和 github.com/banthar/gl 显示三角形?的详细内容。更多信息请关注PHP中文网其他相关文章!