問題:
使用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中文網其他相關文章!