使用 gl.uniform1fv 上传的数组的最大大小是多少?

Jef*_*emi 2 webgl webgl2

上面的调用有什么限制吗?WebGL 1.0 和 WebGL 2.0 的限制不同吗?如果没有限制,是否有理由将其与纹理用于输入数据?

谢谢

Han*_*ody 6

对于顶点着色器,最大尺寸由gl.MAX_VERTEX_UNIFORM_VECTORS参数指定。WebGL 1 的最小值是128WebGL 2 的最小值是256

gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);
Run Code Online (Sandbox Code Playgroud)

对于片段着色器,最大大小由gl.MAX_FRAGMENT_UNIFORM_VECTORS参数指定。WebGL 1 的最小值是16WebGL 2 的最小值是224

gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);
Run Code Online (Sandbox Code Playgroud)

您可以在Webgl 报告站点上的浏览器中快速检查这些限制。

注意:其他统一变量会降低该限制,例如mat4着色器中的统一计算为 4个统一。