Was ist das Konzept und die Unterschiede zwischen Framebuffer und Renderbuffer in OpenGL?
Ich bin verwirrt über den Begriff des Framebuffer-und Renderbuffer. Ich weiß, dass Sie verpflichtet sind, zu machen, aber ich möchte Sie zu verstehen, bevor Sie es verwenden.
Ich kenne einige bitmap-Puffer erforderlich ist zum speichern der temporären Zeichnung Ergebnis. Der back-buffer. Und der andere Puffer ist erforderlich, um auf dem Bildschirm gesehen haben, wenn diese Zeichnungen sind in Arbeit. Die vorderen Puffer.
Und drehen Sie Sie um, und zeichnen Sie erneut. Ich weiß, das Konzept, aber es ist schwer, verbinden diese Objekte mit diesem Konzept.
Was ist das Konzept und die Unterschiede zwischen Ihnen?
InformationsquelleAutor der Frage Eonil | 2010-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf dieser Seite hat einige details, die ich denke, erklären Sie den Unterschied ganz gut. Erstens:
In der Erwägung, dass:
InformationsquelleAutor der Antwort ChrisF
Framebuffer - Objekt ist nicht wirklich ein Puffer ist, sondern ein aggregator-Objekt enthält eine oder mehrere Anlagen, welche durch Ihre umdrehung das eigentliche Puffer. Verstehen Sie die Framebuffer als C-Struktur, wo jedes Mitglied wird ein Zeiger auf einen Puffer. Ohne Befestigung, eine Framebuffer - Objekt hat eine sehr geringe Stellfläche.
Nun jeder Puffer, befestigt an einem Framebuffer ein Renderbuffer oder textur.
Renderbuffer ist eine tatsächliche buffer (ein array von bytes oder Integer, oder Pixel). Die Renderbuffer speichert die pixel-Werte im nativen format, also optimiert für offscreen-rendering. In anderen Worten, die Zeichnung zu einer Renderbuffer wesentlich schneller als das zeichnen auf eine textur. Der Nachteil ist, dass Pixel verwendet eine native Implementierung abhängig-format, so dass das Lesen aus einer Renderbuffer ist viel schwieriger als das Lesen aus einer textur. Trotzdem, sobald Sie eine Renderbuffer wurde gestrichen, man kann kopieren Sie Ihre Inhalte direkt auf den Bildschirm (oder andere Renderbufferdie ich denke), sehr schnell mit pixel-transfer-Operationen. Dies bedeutet, dass eine Renderbuffer kann verwendet werden, um eine wirksame Umsetzung der Doppel-Puffer-Muster, die Sie erwähnt.
Renderbuffers sind ein relativ neues Konzept. Vor Ihnen, ein Framebuffer wurde verwendet, um das Rendern zu einem texturdie werden langsamer, weil eine textur verwendet ein standard-format. Es ist noch möglich zu machen, um eine textur, und das ist ziemlich nützlich, wenn man braucht, um führen Sie mehrere Durchgänge über jedem pixel zu bauen, eine Szene, oder zeichnen Sie eine Szene auf einer Oberfläche einer anderen Szene!
Den OpenGL-wiki hat auf dieser Seite , zeigt mehr details und links.
InformationsquelleAutor der Antwort fernacolo