我想使用glUniform1ui为渲染调用提供运行索引,因此我可以在实际制服所在的着色器中为ubo编制索引。
如果我每个抽奖电话只设置一次,这将导致多少开销?

我不能使用glMultiDrawArraysIndirect,因为必须使用GLES 3.1。

最佳答案

taxonomy of state change performance中,更新制服是您可以做的最便宜的事情。更改UBO绑定更昂贵。

因此,您应该更喜欢每个对象一次统一更新,而不是每个对象UBO绑定。

但是,由于您使用的是具有SSBO的ES 3.1,因此使用它们而不是UBO可能会更好,这仅仅是因为与UBO相比,您可以从SSBO访问的内容很多。

10-05 21:20