而不是发布大量代码,我会直观地说出这个问题.我希望你明白我的目标.
我正在制作一个游戏,在代码中我有一个模型类,它可以加载模型并为它设置VBO.
在加载函数中,它生成一个新的VBO ID并通过绑定它等将文件中的顶点数据加载到该缓冲区中(这很好)
在程序开始时,我创建一个模型对象并加载.obj文件.
在渲染功能中,我只是调用DrawArrays()函数(带有必要的额外东西),正如我所说,一切正常,因为模型出现在屏幕上没有任何问题.
但问题是,当我在程序开头创建两个模型对象并将不同的.obj文件加载到每个模型对象中时.
问题在于,当我玩时,屏幕上只绘制第二个模型.
问题是因为我没有正确理解VBO的工作原理.
这就是我"思考"VBO的工作方式.
您可以根据需要生成任意数量的VBO ID.您可以绑定每个ID以使其成为活动缓冲区.您可以将顶点数据加载到该缓冲区中.现在,您实际上有许多不同的ID,每个ID都引用一组"顶点数据".通过调用DrawArray函数,它会绘制您生成的每个缓冲区(在屏幕上有效显示所有模型)
现在我知道这是错的,因为在我有限的理解中,我无法看到如何打开/关闭模型.但无论我看多少教程,我都无法回答这个问题,因为他们都专注于展示第一个VBO,顺便说一下,我可以这样做.
所以...如果这是有道理的,有人可以开导我吗?