我计划消除GLSL着色器中的所有glUniform调用,以节省状态切换的成本。为此,我计划使用永久绑定到着色器的UBO。不同的绘制调用使用UBO的不同部分(基本上是一个数组)。为了告诉绘图调用使用哪个条目,我必须向顶点/片段着色器提交一个整数。问题是,在系统上我什至必须强制转换单个glUniform调用,这将导致昂贵的状态更新,因此我根本无法使用glUniform。
您知道一种适用于GLES 3.1的解决方案以及一种适用于GLES 2的解决方案吗?
据我所知,GLES还没有glMulti *调用,并且基本顶点仅从3.2向上。并且添加另一个顶点属性可能会很昂贵。