【问题标题】:What is the max size for an array to be uploaded using gl.uniform1fv?使用 gl.uniform1fv 上传的数组的最大大小是多少?
【发布时间】:2018-08-01 20:47:25
【问题描述】:

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

谢谢

【问题讨论】:

  • 与@HankMoody 的回答不同,纹理可以被采样,纹理可以有 mip,在 WebGL2 中,纹理可以是 3D,因此有很多理由将纹理用于制服上的数据,而事实并非如此得到那么多制服。
  • 感谢@gman 参与

标签: webgl webgl2


【解决方案1】:

对于顶点着色器,最大尺寸由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 个统一。

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2014-02-15
    • 2017-04-26
    • 2010-11-26
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多