Framebuffer Objects

The framebuffer is the image to which we render. It has implicitly always been there, with its RGBA color and Z depth buffers, ready to accept the fragments that we draw to the screen.

A framebuffer object allows us take control of this functionality, to have as many rendering targets as we choose, to determine the size and type of each, and, most-importantly, to render directly to textures.

This capability has numerous uses: