Saya telah mencoba menyelesaikan bug visual ini selama beberapa hari tanpa hasil, jadi saya mengajukan pertanyaan ini untuk melihat apakah seseorang dapat membantu saya memahami apa yang terjadi.

Pertama saya akan menjelaskan masalahnya tanpa kode apa pun, dan kemudian saya akan menyajikan beberapa kode. Inilah situasinya:

1 menjawab

Jawaban Terbaik

Masalahnya adalah karena penyelarasan baris, ketika gambar dibaca oleh glReadPixels. Secara default, perataan awal setiap baris gambar diasumsikan 4.
Karena lebar gambar adalah 450, yang tidak habis dibagi 4 (450/4 = 112,5) dan formatnya adalah RGB (3 byte), perataan harus diubah.

Ubah GL_PACK_ALIGNMENT (glPixelStore< /a>) sebelum membaca data gambar:

glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, data);
4
Rabbid76 25 Mei 2020, 17:45