我有4-5个目标。我为它们每个绘制了几个三角形。
while !window.should_close() {
for target in targets.iter() {
// Update uniform (target.color_value [red, blue, green, yellow] )
// BindVertexArray
// DrawElements
}
}
一切正常,我的三角形以不同的颜色绘制在屏幕上。
我能否将一个缓冲区绑定一次并运行一次draw命令?有点像
while !window.should_close() {
for target in targets.iter() {
// Update uniform (target.color_value [red, blue, green, yellow] )
}
// BindVertexArray
// DrawElements
}
我尝试过,但是所有内容都按照我的预期以黄色绘制。
我找到了How to draw multiple objects by using uniform buffer objects and instanced rendering?以及glMultiDrawArraysIndirect
和glDrawArraysInstanced
。
我对如何组织代码感到困惑。
每个绘制调用只能为所有顶点指定一个统一值。
您可以为每个顶点提供带有颜色值的附加属性。它与为三角形顶点提供坐标属性的方式相同。