Mengapa Segitiga OpenGL Go Saya Kekal Tidak Kelihatan?

Patricia Arquette
Lepaskan: 2024-10-26 05:55:30
asal
464 orang telah melayarinya

 Why Does My Go OpenGL Triangle Remain Invisible?

Penimbal Vertex OpenGL Gagal Memaparkan Segitiga dalam Go

Dalam percubaan untuk meniru tutorial tentang mencipta segi tiga mudah menggunakan OpenGL dalam Go, seseorang individu menghadapi kesukaran untuk mendapatkan penimbal bucu untuk memaparkan bentuk. Semasa tetingkap dibuka dan latar belakang menjadi biru, segi tiga kekal tidak kelihatan.

Coretan kod yang disediakan melibatkan mencipta penimbal bucu dan kemudian melukis segi tiga menggunakan glDrawArrays. Walau bagaimanapun, dalam versi c kod yang berfungsi, fungsi AttribPointer mengambil parameter (void*)0 untuk menentukan ofset penimbal tatasusunan, manakala dalam versi Go, hujah offset yang disediakan merosakkan aplikasi dan tiada ' t nampaknya berfungsi sama ada.

Penyelesaian yang dikemas kini melibatkan penggunaan cabang kerja pengikatan banthar dan mengubah panggilan ke AttribPointer dan BufferData seperti berikut:

<code class="go">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)</code>
Salin selepas log masuk

Dengan menghantar saiz dalam bait kepada BufferData dan menetapkan penampan tatasusunan mengimbangi kepada sifar dalam AttribPointer, masalah telah diselesaikan dan segi tiga telah berjaya dipaparkan.

Atas ialah kandungan terperinci Mengapa Segitiga OpenGL Go Saya Kekal Tidak Kelihatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan