gpt4 book ai didi

webgl - WebGL 中的最大纹理数?

转载 作者:行者123 更新时间:2023-12-04 13:31:04 30 4
gpt4 key购买 nike

我知道 WebGL 中有 8 个纹理的限制。

我的问题是,8 是全局限制还是每个着色器/程序明智的?

如果它是每个着色器/程序明智的限制,这是否意味着,一旦我将纹理加载到一个着色器的制服上,我就可以开始将这些插槽重用于其他着色器?说我用过 TEXTURE0对于一种形状,我可以使用 TEXTURE0以另一种形式?

最佳答案

限制是每次绘制调用。当您进行绘制调用并调用特定的着色器程序时,您会受到限制的约束,但您的下一次绘制调用可以在同一动画帧中使用完全不同的纹理。
此外,8 只是最低保证。系统需要支持至少 8 个才能被视为符合 WebGL。但更好的显卡支持超过八个。您可以像这样查询您所在平台的最大图像纹理数:

var maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
您还可以查找顶点纹理:
gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS)
或者两者的结合:
gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS)
您也可以使用像 WebGL Report 这样的网站。 (免责声明,我是贡献者)为您所在的平台查找此统计信息(在 Fragment Shader -> Max Texture Units 下)。
编辑:当第一次写这个答案时,还有另一个有用的站点叫做“WebGL Stats”,它会显示各种浏览器中 WebGL 支持的聚合数据。可悲的是,该网站几年前在没有任何警告的情况下消失了。但即使在那时,大多数设备也至少支持 16 种纹理。

关于webgl - WebGL 中的最大纹理数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41020683/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com