Part of the Khronos Group

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 4 of 4

Thread: Vertex Arrays and VBOs

  1. #1
    Intern Contributor
    Join Date
    Jan 2012

    Vertex Arrays and VBOs

    Hello All!

    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?

    Could anyone please explain this for me?

  2. #2
    Senior Member OpenGL Lord
    Join Date
    May 2009
    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 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.

  3. #3
    Super Moderator OpenGL Guru
    Join Date
    Feb 2000
    Montreal, Canada
    The old fashion vertex arrays are in RAM and when you draw with them, they get copied over to VRAM. That copy operation happens every time make a draw call. That's why VBO came along.
    an open source GLU replacement library. Much more modern than GLU.
    float matrix[16], inverse_matrix[16];
    glhTranslatef2(matrix, 0.0, 0.0, 5.0);
    glhRotateAboutXf2(matrix, angleInRadians);
    glhScalef2(matrix, 1.0, 1.0, -1.0);
    glhQuickInvertMatrixf2(matrix, inverse_matrix);
    glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
    glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);

  4. #4
    Intern Contributor
    Join Date
    Jan 2012
    Thanks Alfonse Reinheart, V-man,

    > The old fashion vertex arrays are in RAM and when you draw with them

    Yes, that was what had confused me. Now it is clear after reading the links provided by both of you. Thanks!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts