我想使用着色器在OpenGL中渲染两个对象。
要渲染我的第一个对象,我使用glGenBuffers()
创建一个顶点缓冲区,然后使用glBufferData()
用数据填充顶点缓冲区,最后使用glDrawArrays()
绘制顶点缓冲区。
现在,要绘制我的第二个对象,我可以想到两种方法。首先,我可以将第二个对象的所有顶点附加到上面创建的顶点缓冲区,然后使用一次调用glDrawArrays()
绘制两个对象的所有顶点。或者,我可以创建第二个顶点缓冲区,用第二个对象的数据填充它,然后第二次为第二个对象调用glDrawArrays()
。
哪种方法最好?第二种方法允许我保持每个对象的呈现独立,这可能使代码更容易遵循,但它也可能在运行时更慢...
答案 0 :(得分:0)
如果你可以将多个对象组合成一个绘制调用,那么这样做总是一个好主意,因为这意味着对opengl的调用越少,它就会越快。一个问题是,当你的对象需要不同的变换矩阵,不同的着色器等时,它会更复杂一些。