Soalan:
Menggunakan pakej Go github.com/banthar/gl , kod tutorial daripada http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/ berjaya mencipta tetingkap dan menetapkan warna latar belakang, tetapi gagal memaparkan segi tiga. Kod C yang setara memang memaparkan segi tiga. Mengapa?
Jawapan:
Ralat mungkin dikaitkan dengan argumen yang salah yang dihantar ke fungsi AttribPointer. Pelarasan berikut telah dikenal pasti untuk menyelesaikan isu:
Kod Go Dibetulkan:
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) ... } }
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Memaparkan Segi Tiga Menggunakan go-gl/glfw dan github.com/banthar/gl Walaupun Persediaan Tetingkap dan Latar Belakang Berjaya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!