我最近通过http://learnopengl.com/上的教程学习了opengl ,但是我遇到的问题是,您放入GLbufferdata中的数组必须具有在初始化时声明的固定大小。但是,在我的程序中,我希望它具有可创建和删除(通过列表完成)的动态对象数量,这些参数会显示在屏幕上。
我设法使代码从对象中获取数据并将其转换为VBO的float数组和EBO的整数数组,但是这些数组似乎无法更改大小,因此尽管我的程序可以设置将数组调整为正确的大小取决于开始时有多少个对象,我无法重新声明该数组,这意味着如果我想添加更多对象,则不会渲染它们。
我当然可以将数组设置为大于所需的数组,但这似乎效率不高并且无法解决此问题。
谢谢您的帮助,顺便说一句:)。
编辑:这是指向更精简版本的链接,该版本应有助于更简洁地概述问题。99/100行是我创建数组的地方,但是编译后什么也没显示。
我不确定,但是我认为您不能在声明后动态更改顶点缓冲区的大小(可以删除缓冲区并再创建一个需要大小的缓冲区)。
更好的方法是系统中的每个对象都必须具有自己的顶点缓冲区。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句