OPenGL中的VBO、VAO、EBO作用理解

VBO是顶点缓冲对象(Vertex Buffer Objects, VBO),包含了顶点的3d坐标和颜色。但它们是按同类数组存储的,存放在一片显存空间中,程序并不知道这些数字哪个代表3d坐标,哪个代表颜色。

VAO是顶点数组对象(Vertex Array Object, VAO),用来表示这些数字的第几位分别代表顶点的什么属性。比如这些数字的第1-3位代表3d的xyz坐标,第4-7位代表rbg颜色和透明度。

EBO是元素缓冲对象(Element Buffer Object,EBO),EBO是一个缓冲区,就像一个VBO一样,它存储 OpenGL 用来决定要绘制哪些顶点的索引,设置顶点的绘制顺序。EBO由VAO进行绑定,如下图所示:

OPenGL中的VBO、VAO、EBO作用理解_第1张图片

如图所示:VAO1中下标为0的指针attribute pointer[0]对应VBO1中的pos[0],表示VOB1数组中下标为0位置代表坐标pos。

VAO2中下标为0的指针attribute pointer[0]对应VBO2中的pos[0],VAO2中下标为1的指针attribute pointer[1]对应VBO2中的col[0],表示VOB2数组中下标为1位置代表颜色col。

OPenGL中的VBO、VAO、EBO作用理解_第2张图片

你可能感兴趣的:(数据结构,计算机视觉,图形渲染)