Framebuffer Object

Als Framebuffer Object (FBO) wird eine Erweiterung von OpenGL bezeichnet, die flexibles und plattformunabhängiges Offscreen-Rendering ermöglicht. Sie ist mit dem Render Targets Model von DirectX vergleichbar. Beide Erweiterungen erlauben es nicht nur, im Fenster zu rendern, sondern auch fast alle Grafikoperationen auf Texturen anzuwenden. Durch Kombination mehrerer solcher Bilder (Texturen) oder unter Anwendung von Filtern können verschiedenste grafische Effekte erzeugt werden.

Die Erweiterung besitzt viele Vorteile gegenüber den vorherigen PBuffer-Objekten, welche nur durch notwendige Context Switches beschrieben werden konnten. Dies ist bei FBOs nicht notwendig, was sowohl die Programmierung vereinfacht, als auch Vorteile bei der Geschwindigkeit bringt.

Anwendungsfälle

FBOs werden hauptsächlich für zwei Schritte verwendet: Bei der Nachbearbeitung von gerenderten Bildern und bei der Zusammenstellung mehrerer Szenen innerhalb eines Bildes.

Im ersten Fall wird das Ergebnis nicht direkt auf dem Monitor ausgegeben, sondern zunächst in ein Framebuffer Object gezeichnet. Auf dieses können dann Filter, Pixelshader, oder ähnliches angewendet werden, um zum Beispiel Blur-Effekte oder Blooming zu erzeugen.

Bei der Komposition mehrerer Szenen wird das Bild aus den Ergebnissen vorheriger Berechnungen zusammengesetzt. So ist eine Szene denkbar, bei der außerhalb einer Wohnung eine Kamera angebracht ist. Deren Bild der Außenszene wird in einer Textur gespeichert (Render to Texture oder kurz RTT), welche in einem Raum des Hauses über einen Monitor „geklebt“ wird und es dem Betrachter ermöglicht, ein Bild außerhalb seiner eigenen Umgebung zu sehen. Ein anderes Beispiel ist das Computerspiel Portal, bei dem diese Technologie genutzt wird, um Räume, die durch Portale verbunden sind, darzustellen. Aber auch einfache Spiegelbilder oder Lichtbrechungen bei Glasobjekten können auf diese Weise realisiert werden.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.