如何使用实例化渲染将每个实例数据(例如定位)传递给OpenGL 3.2中的着色器?

时间:2014-11-15 17:01:19

标签: c++ opengl

我正在尝试使用实例化渲染来渲染立方体。我得到了这个工作,我用glDrawArraysInstanced渲染。

但是,我现在想要将每个实例数据(在本例中为定位和颜色)传递给着色器,我已经明白我应该使用函数glVertexAttribDivisor来实现这一点。问题是该功能仅在OpenGL 3.3及更高版本中可用,我使用的是3.2

如何在OpenGL 3.2中以正确的方式实现这一目标?

2 个答案:

答案 0 :(得分:2)

可选解决方案:

使用几何着色器渲染点并发射立方体。然后,您可以将所有内容打包到一个VBO中,并避免实例化渲染。

如果需要,使用转换反馈修改多维数据集属性。

答案 1 :(得分:1)

我没有在3.2中找到一个很好的方法来做我想要的事情所以我更新到OpenGL 3.3而不是能够使用glVertexAttribDivisor在属性中发送实例数据。