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

What is the max size for an array to be uploaded using gl.uniform1fv?

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

谢谢

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

gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);

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

gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);

您可以在 Webgl Report 站点的浏览器中快速查看这些限制。

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