Are EXT's necessary for FBO use in OpenGL 2.1?

In openGL 2.1 certain features became core, such as GL_PIXEL_PACK_BUFFER types for buffers in vram.

How does ‘pixel pack buffer’ types relate to FBO extensions in openGL 2.0 and is it possible to create and use FBO like objects without using the old EXT functions in openGL 2.1 (i.e. only using core opengl funtions)?

I’m trying to implement ‘Render-To-FBO’ behaviour for a particle system to feed back information into itself without involving copying back and forward between main memory.

I guess im just confused by many tutorials using similar functions for the same(ish) behaviour which are already a few years old and I cant find a good definitive description of what the current ‘best’ way to do this.

FBOs and PBOs are unrelated. PBOs were promoted to the core in 2.1, FBOs were not.

Even though you still need the EXT functions for FBOs, they’re supported by pretty much every card made in the last five years.

As FBO was never promoted to core (it isn’t even an ARB extension), the short answer to your question is “YES”.


I just didnt understand the difference between FBO’s and PBO’s which made things a little hazy. For anyone else wondering these where very helpful.…ffer_Object.pdf

In short:

VBOs and PBOs are essentially the same. They’re essentially arrays on the GPU. The only difference is how the data in them is interpreted. You can put data into a PBO and then rebind it as a VBO if you want; no problems.

FBOs are like a struct of pointers. You use them by attaching memory locations to those pointers, and specifying which pointer to render to or read from. The memory locations can take the form of textures or renderbuffers.