Saya bingung tentang konsep Framebuffer dan Renderbuffer. Saya tahu mereka harus membuat, tetapi saya ingin memahaminya sebelum digunakan.
Saya tahu beberapa buffer bitmap diperlukan untuk menyimpan hasil gambar sementara. Penyangga belakang. Dan buffer lain diperlukan untuk dilihat di layar ketika gambar-gambar itu sedang berlangsung. Buffer depan. Dan balik mereka, dan gambar lagi. Saya tahu konsep ini, tetapi sulit untuk menghubungkan objek-objek itu dengan konsep ini.
Apa konsep dan perbedaannya?
opengl
rendering
framebuffer
eonil
sumber
sumber
Jawaban:
Halaman ini memiliki beberapa detail yang menurut saya menjelaskan perbedaannya dengan cukup baik. Pertama:
Sedangkan:
sumber
The Framebuffer objek adalah tidak benar-benar buffer, tetapi obyek aggregator yang berisi satu atau lebih lampiran, yang oleh giliran mereka, adalah buffer yang sebenarnya. Anda dapat memahami Framebuffer sebagai struktur C di mana setiap anggota adalah penunjuk ke buffer. Tanpa lampiran apa pun, objek Framebuffer memiliki jejak yang sangat rendah.
Sekarang setiap buffer yang dilampirkan ke Framebuffer dapat berupa Renderbuffer atau tekstur .
The renderbuffer adalah penyangga yang sebenarnya (array byte, atau bilangan bulat, atau piksel). The renderbuffer toko nilai piksel dalam format asli, sehingga dioptimalkan untuk offscreen rendering. Dengan kata lain, menggambar ke Renderbuffer bisa jauh lebih cepat daripada menggambar ke tekstur. Kekurangannya adalah bahwa piksel menggunakan format asli, tergantung pada implementasi, sehingga membaca dari Renderbuffer jauh lebih sulit daripada membaca dari tekstur. Namun demikian, begitu Renderbuffer dilukis, orang dapat menyalin kontennya langsung ke layar (atau Renderbuffer lain , saya kira), sangat cepat menggunakan operasi transfer piksel. Ini berarti Renderbuffer dapat digunakan untuk mengimplementasikan pola penyangga ganda yang Anda sebutkan secara efisien.
Renderbuffers adalah konsep yang relatif baru. Sebelum mereka, Framebuffer digunakan untuk membuat tekstur , yang bisa lebih lambat karena tekstur menggunakan format standar. Masih dimungkinkan untuk membuat tekstur, dan itu cukup berguna ketika seseorang perlu melakukan beberapa lintasan melewati setiap piksel untuk membangun adegan, atau untuk menggambar adegan di permukaan adegan lain!
Wiki OpenGL memiliki halaman ini yang menunjukkan lebih banyak detail dan tautan.
sumber