小编Lui*_*scu的帖子

OpenGL 中的 VBO 到底是什么?

我正在尝试了解 OpenGL 背后的理论,目前正在研究 VBO。

到目前为止我的理解是:当我们声明一系列顶点时,比如说形成一个三角形基元的 3 个顶点,我们基本上不会将它们存储在任何地方,它们只是在代码中声明。

但是,如果我们想将它们存储在某个地方,我们可以使用 VBO 来存储这些顶点的定义。并且,通过同一个 VBO,我们将所有顶点信息发送到顶点着色器(这是一堆代码)。现在,VBO 位于 GPU 中,因此当我们调用 VBO 时,我们基本上将所有信息存储在 GPU 内存中。然后,作为管道渲染过程一部分的顶点着色器“来到”GPU 内存,“查看”VBO 并检索所有信息。换句话说,VBO存储顶点数据(三角形顶点)并将其发送到Vertex Shader。

因此,VBO -> 发送信息到 -> 顶点着色器。

它是否正确?我要求确定这是否是正确的解释,因为我发现自己在屏幕上画三角形,有时画由许多三角形组成的字母,还有一堆代码和函数,我基本上是通过记忆学到的,但并不真正理解什么他们是这样。

分解它:

// here I declare the VBO
unsigned int VBO;

// we have 1 VBO, so we generate an ID for it, and that ID is: GL_ARRAY_BUFFER
glGenBuffers(1, &VBO) 

// GL_ARRAY_BUFFER is the VBO's ID, which we are going to bind to the VBO itself
glBindBuffer(GL_ARRAY_BUFFER, VBO)

// bunch of info in here …
Run Code Online (Sandbox Code Playgroud)

opengl glsl vbo opengl-3 opengl-4

4
推荐指数
1
解决办法
6044
查看次数

标签 统计

glsl ×1

opengl ×1

opengl-3 ×1

opengl-4 ×1

vbo ×1