小编use*_*338的帖子

使用多个openGL VBO绘制多个模型

而不是发布大量代码,我会直观地说出这个问题.我希望你明白我的目标.

我正在制作一个游戏,在代码中我有一个模型类,它可以加载模型并为它设置VBO.

在加载函数中,它生成一个新的VBO ID并通过绑定它等将文件中的顶点数据加载到该缓冲区中(这很好)

在程序开始时,我创建一个模型对象并加载.obj文件.

在渲染功能中,我只是调用DrawArrays()函数(带有必要的额外东西),正如我所说,一切正常,因为模型出现在屏幕上没有任何问题.

但问题是,当我在程序开头创建两个模型对象并将不同的.obj文件加载到每个模型对象中时.

问题在于,当我玩时,屏幕上只绘制第二个模型.

问题是因为我没有正确理解VBO的工作原理.

这就是我"思考"VBO的工作方式.

您可以根据需要生成任意数量的VBO ID.您可以绑定每个ID以使其成为活动缓冲区.您可以将顶点数据加载到该缓冲区中.现在,您实际上有许多不同的ID,每个ID都引用一组"顶点数据".通过调用DrawArray函数,它会绘制您生成的每个缓冲区(在屏幕上有效显示所有模型)

现在我知道这是错的,因为在我有限的理解中,我无法看到如何打开/关闭模型.但无论我看多少教程,我都无法回答这个问题,因为他们都专注于展示第一个VBO,顺便说一下,我可以这样做.

所以...如果这是有道理的,有人可以开导我吗?

opengl vbo

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

opengl ×1

vbo ×1