如何进行批渲染?

问题描述 投票:1回答:1

我有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?以及glMultiDrawArraysIndirectglDrawArraysInstanced

我对如何组织代码感到困惑。

rust opengl-es
1个回答
0
投票

每个绘制调用只能为所有顶点指定一个统一值。

您可以为每个顶点提供带有颜色值的附加属性。它与为三角形顶点提供坐标属性的方式相同。

© www.soinside.com 2019 - 2024. All rights reserved.