Saya memiliki cloud point yang sedang ditampilkan di layar. Setiap titik memiliki posisi dan warna serta ID.
Saya diminta untuk membuat ID untuk setiap titik ke tekstur jadi saya membuat FBO dan melampirkan dua tekstur, satu untuk warna dan satu untuk kedalaman. Saya membuat VAO dan VBO yang diperlukan untuk rendering di luar layar ini dan mengunggah untuk setiap titik posisi dan ID-nya.
Setelah rendering ke FBO selesai, saya membaca piksel dari tekstur warna dengan glReadPixels()
untuk melihat apa nilai-nilainya, tetapi semuanya tampaknya dihapus, yaitu, nilai yang mereka miliki sama dengan glClearColor()
.
Apakah ada cara saya bisa men-debug apa yang sedang dirender ke tekstur warna FBO saya? Setiap tips yang Anda berikan sangat disambut.
Saya menguji beberapa aplikasi / API / perpustakaan untuk mendapatkan data dari FBO dalam aplikasi yang menggunakan gbuffer misalnya. Setelah berbulan-bulan menderita saya menemukan apitrace tersedia di Github untuk men-debug OpenGL, Direct3D dan WebGL. Saya menggunakan Windows dan Linux tanpa masalah.
Semoga bermanfaat bagi Anda.
sumber
Selain respons cifz, cara lain untuk memvisualisasikan FBO yang tidak memerlukan biaya banyak kode adalah dengan menggunakan glBlitFramebuffer () untuk mentransfer piksel dari framebuffer ke jendela.
Ada beberapa "gotcha" yang jelas, di mana buffer HDR mungkin tidak akan memvisualisasikan cara yang Anda harapkan, Anda mungkin tidak dapat "melihat" buffer stensil / stensil dengan cara yang jelas, dan jika ukuran FBO tidak tidak cocok dengan area yang sedang dibidik, metode pembesaran / minifikasi mungkin sangat naif.
Tapi ketika peretasan cepat terjadi, itu cukup bagus.
sumber