Framebuffer Object
The Framebuffer Object ( FBO ) is an extension of OpenGL that enables flexible and platform-independent offscreen rendering . It is with the render target model of DirectX comparable. Both extensions allow not only rendering in the window, but also almost all graphic operations on textures . A wide variety of graphic effects can be created by combining several such images (textures) or using filters .
The extension has many advantages compared to the previous PBuffer objects, which could only be described by necessary context switches . This is not necessary with FBOs, which both simplifies programming and has advantages in terms of speed.
use cases
FBOs are mainly used for two steps: in post-processing of rendered images and in assembling several scenes within one image .
In the first case, the result is not output directly on the monitor, but is first drawn in a framebuffer object. Filters , pixel shaders , or the like can then be applied to this, for example to create blur effects or blooming .
When composing several scenes, the image is put together from the results of previous calculations. A scene is conceivable in which a camera is attached outside of an apartment. Their image of the outside scene is saved in a texture ( render to texture or RTT for short), which is "glued" over a monitor in a room of the house and enables the viewer to see an image outside of his own surroundings. Another example is the computer game portal , in which this technology is used to display rooms that are connected by portals. But also simple mirror images or refractions of light in glass objects can be realized in this way.
Web links
- Definition of the extension on the SGI website .
- Use of frame buffer objects in the Delphi programming language .