I just started to take a look at how GL provides for specifying vertices(i mean OpenGL version >= 3.3 and in the core profile).
I see that we can use Vertex Arrays and VBOs.
Now, i had a few doubts:
Aren’t Vertex Arrays also stored in the VRAM? (same as the VBO?) Why then do we need VBOs exactly? Since both are stored on the server side memory, i was wondering why exactly we have these two approaches?
Your use of terminology is very confused. You should go read this.
Here’s the short version. “Vertex array” means exactly that: an array of vertex data. Where that array is store is not relevant to the concept of a series of bytes that represent and array of vertex data. “Vertex Buffer Object” is the common name for a [url=]Buffer Object that is used to store vertex array data in server-side memory. “Vertex Array Object” is an object that represents the information needed for OpenGL to interpret the data stored in buffer objects as vertex array data.
You create some buffer objects, store vertex array data in them, and then associate those buffer objects with vertex array objects so that OpenGL knows what to do with them.