Zum Inhalt springen

„Framebuffer Object“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Rechtschreibfehler korrigiert
K Formatierung, Interwikis ans Textende
Zeile 15: Zeile 15:
* [http://oss.sgi.com/projects/ogl-sample/registry/EXT/framebuffer_object.txt Definition der Erweiterung] auf der Website von [[Silicon Graphics|SGI]].
* [http://oss.sgi.com/projects/ogl-sample/registry/EXT/framebuffer_object.txt Definition der Erweiterung] auf der Website von [[Silicon Graphics|SGI]].
* [http://wiki.delphigl.com/index.php/Tutorial_Framebufferobject Verwendung von Framebuffer Objects] in der Programmiersprache [[Borland Delphi|Delphi]].
* [http://wiki.delphigl.com/index.php/Tutorial_Framebufferobject Verwendung von Framebuffer Objects] in der Programmiersprache [[Borland Delphi|Delphi]].

[[en:Framebuffer Object]]


[[Kategorie:Bildsynthese]]
[[Kategorie:Bildsynthese]]

[[en:Framebuffer Object]]

Version vom 24. Juli 2009, 18:10 Uhr

Als Framebuffer Object (FBO) wird eine Erweiterung von OpenGL bezeichnet, die flexibles und platfformunabhä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, 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.

So ist es möglich außerhalb eines Hauses eine Kamera zu platzieren, die den Außenbereich im Fernseher, der in einem der Zimmer steht, darstellt. Dazu wird zunächst die Außenszene berechnet und in einer Textur als Bild hinterlegt. Im nächsten Schritt wird die Texture über den Fernseher „geklebt“. Dieser Vorgehensweise wird häufig als Render to Texture (RTT) bezeichnet.