LWJGL - VBO和Sprite类

时间:2016-08-21 12:54:44

标签: java sprite lwjgl vbo vao

我最近发现在渲染时使用immediate mode是一个很大的禁忌。

所以我开始关注VBO和VAO,如果我理解正确的话,VBO是对象/缓冲区,它们包含位置,颜色等数据。

然后将VBO放入VAO并在VAO中渲染所有内容?

所有这些对我来说都是新的和奇怪的,所以我想知道如何使用它,例如,Sprite / Texture类看起来怎么样,并且我能够修改像纹理之类的东西。我开始渲染了吗?

我已经四处搜索,但没有找到任何我能够掌握的东西。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

即使这个问题非常精确,但我认为我得到你想要的东西(如果我没有,请纠正我)

您必须将VAO视为列表。在此列表中,有许多属性,例如位置,纹理坐标等(最多16个)。每个属性都存储为一个数组(VBO)。该数组填充了一个属性的所有数据(例如,所有顶点位置)。函数glVertexAttribPointer描述了一个VBO的属性,比如一个顶点的大小,数据类型等。

另一方面,有Uniform个变量。这些变量在绘制调用之前加载到着色器中指定的插槽中。这些变量对于整个网格保持不变,并用于值,对于所有顶点(投影,视图等)保持相同。这些变量也可以是数据类型Sampler,表示纹理。

有关详细信息,建议您阅读一些示例/教程。