У меня 4 - 5 целей. Я рисую несколько треугольников для каждого из них.
while !window.should_close() {
for target in targets.iter() {
// Update uniform (target.color_value [red, blue, green, yellow] )
// BindVertexArray
// DrawElements
}
}
Все работает, и мои треугольники нарисованы на экране разными цветами.
Могу ли я иметь один буфер, который я связываю один раз, и запускаю Команда рисования один раз? Что-то вроде
while !window.should_close() {
for target in targets.iter() {
// Update uniform (target.color_value [red, blue, green, yellow] )
}
// BindVertexArray
// DrawElements
}
Я пытался, но все нарисовано желтым цветом, как я и ожидал.
Я обнаружил Как нарисовать несколько объектов с использованием однородных объектов буфера и экземпляра рендеринга? а также glMultiDrawArraysIndirect
и glDrawArraysInstanced
.
Я не совсем понимаю, как организовать мой код.