Framebuffer Object vs. Vertex Buffer Objects

Ok, so when I was looking through tutorials on openGL, I was informed that VBO’s were the most modern way of rendering things. Now I am hearing about FBO’s, what are they?, and how do they compare to VBO’s (performance wise)?

They are not the same thing. I’ll assume you already know what VBOs are. FBOs are basically used for if you want to render to someplace other than the screen. For example. suppose you had a scene with a TV in it and you wanted to have some 3d characters on the TV. So you could render the TV scene to a texture (using a FBO) and then render that texture on the TV.

See this image here (just pulled from google image search):

http://hi.csdn.net/attachment/201202/22/0_1329901288pN4U.gif

So the teapot was rendered to a texture and then that texture was placed on a cube. There are of course many other uses for FBOs, that’s just a basic one. Hope that helped!

So basically, frame buffer objects are used to render things into things that can be rendered by vertex buffer objects?

They are like a mini perspective view that converts the 3d points into a set of 2d points that can be rendered.

A VBO is a buffer for vertices and other attribute data.
A FBO is a buffer for a frame.
The BO which may or may not be causing you confusion just stands for Buffer Object.
When you render, you render to a frame which is usually displayed in your window; however, you can just save this frame as data in a buffer (your FBO) and rather than display it on the screen you can use it for other purposes. 2 common ways are for color picking and for turning the frame into a texture and using it as such.