Obiekt Framebuffer nie jest w rzeczywistości buforem, ale obiektem agregatora, który zawiera jeden lub więcej załączników, które z kolei są rzeczywistymi buforami. Możesz zrozumieć Framebuffer jako strukturę C, w której każdy element członkowski jest wskaźnikiem do bufora. Bez żadnego załącznika obiekt Framebuffer zajmuje bardzo mało miejsca.
Teraz każdy bufor dołączony do bufora ramki może być buforem renderowania lub teksturą .
Renderbuffer jest rzeczywisty bufor (tablica bajtów lub liczb całkowitych, lub pikseli). W Renderbuffer przechowuje wartości pikseli w formacie natywnym, więc jest zoptymalizowany do niewidocznej renderowania. Innymi słowy, rysowanie do Renderbuffera może być znacznie szybsze niż rysowanie do tekstury. Wadą jest to, że piksele używają natywnego formatu zależnego od implementacji, więc odczyt z Renderbuffera jest znacznie trudniejszy niż odczyt z tekstury. Niemniej jednak, po namalowaniu Renderbuffera , można skopiować jego zawartość bezpośrednio na ekran (lub , jak sądzę, do innego Renderbuffera ), bardzo szybko za pomocą operacji transferu pikseli. Oznacza to, że Renderbuffer można użyć do wydajnego zaimplementowania wspomnianego wzorca podwójnego bufora.
Renderbuffery to stosunkowo nowa koncepcja. Wcześniej do renderowania tekstury używano bufora ramki , co może być wolniejsze, ponieważ tekstura używa standardowego formatu. Nadal można renderować teksturę i jest to bardzo przydatne, gdy trzeba wykonać wiele przejść nad każdym pikselem, aby zbudować scenę lub narysować scenę na powierzchni innej sceny!
Wiki OpenGL ma tę stronę, która pokazuje więcej szczegółów i łączy.