Framebuffer object: Difference between revisions

Content deleted Content added
No need to sound like a marketing department
copyedit - join broken links, clean up formatting and section headers
Line 1:
The '''frame buffer object''' architecture (FBO) is an extension to [[OpenGL]] for doing flexible off-screen rendering, including rendering to a texture. By capturing images that would normally be drawn to the screen, it can be used to implement a large variety of image filters, and post processing effects. The FBO is analogous to the '''render targets model''' in [[DirectX]]. It is used in OpenGL for its efficiency and ease of use. The use of FBO's doesn't suffer from the overhead associated with context switching, and has largely superseded the [[pbuffer]] and other methods involving context switches.
and post processing effects. The FBO is analogous to the '''render targets model''' in [[DirectX]]. It is used in OpenGL for its efficiency and ease of use. The use of FBO's doesn't suffer from the overhead associated with context switching, and has largely superseded the [[pbuffer]] and other methods involving context switches.
 
== Uses ==
 
The FBO has two main uses: The post-processing of rendered images and composition between different scenes.
 
Some examples are:
# The rendered image is captured and subjected to [[Pixel Shaders]] or other manipulations. This allows for many of todays ''popular computer graphics effects'' to be carried out, including the addition of a blurring or bloom effect.
2.# Can be used to create views of other scenes, for example: a TV in a house. A scene can be rendered through an FBO to a texture, then that texture can be applied to the surface of a TV. This is sometimes called "Render to Texture" or RTT.
 
== Advantages over other methods ==
1. The rendered image is captured and subjected to [[Pixel Shaders]] or other manipulations. This allows for
many of todays ''popular computer graphics effects'' to be carried out, including the addition of a blurring or bloom
effect.
 
2. Can be used to create views of other scenes, for example: a TV in a house. A scene can be rendered through an FBO to a texture, then that
texture can be applied to the surface of a TV. This is sometimes called "Render to Texture" or RTT.
 
==Advantages over other methods==
 
Methods involving the FBO are considered superior because:
Line 24 ⟶ 18:
* Is more flexible because all of depth buffer, stencil buffer, accumulation buffer, etc. can be acquired.
 
== Architecture ==
 
To use an FBO one simply creates an instance of it. Along with the FBO comes several attachments, one can then attach these to a chosen receiver; either a [[Texture (computer graphics)|texture]], or a [[render buffer]].
attach these to a chosen receiver; either a [[Texture (computer graphics)|texture]], or a [[render buffer]].
 
For example:
 
* Create an FBO.
* Attach the color buffer to a texture.
Line 36 ⟶ 28:
* Render the texture to screen with a pixel shader, dependent on both the Color information and depth information.
 
== External links ==
=Links=
 
Framebuffer object technical paper. [http://oss.sgi.com/projects/ogl-sample/registry/EXT/framebuffer_object.txt]
 
Framebuffer object reference at openvidia.[http://openvidia.sourceforge.net/fbo.shtml]
 
Framebuffer object technical paper.* [http://oss.sgi.com/projects/ogl-sample/registry/EXT/framebuffer_object.txt Framebuffer object technical paper]
* [http://openvidia.sourceforge.net/fbo.shtml Framebuffer object reference at openvidia]
 
{{compu-prog-stub}}