gpt4 book ai didi

javascript - 在 WebGL 循环中使用制服(或类似)的解决方法?

转载 作者:行者123 更新时间:2023-11-30 07:22:39 25 4
gpt4 key购买 nike

我正致力于在 WebGL 中实现片段着色器,遇到了只能在 for 循环中使用常量表达式的限制。有人对此有任何合适的解决方法吗?

在我的特定情况下,我正在实现一个双边过滤器,目前在我的片段着色器中将窗口大小指定为常量,但我希望能够从 JavaScript 更改它。制服不被视为常量,因此不能在 for 循环中使用,因此我正在寻找其他实现方法。

我唯一能想到的是从 JavaScript 读取着色器源代码,解析它并将 const 的值替换为所需的窗口大小,然后重新编译着色器。这可以满足我的目的,但我想知道是否有更简单的方法。

最佳答案

如果您想要/需要动态更改循环长度的能力,您可以使用 for 循环计数到非常大的数字/无穷大,并在您的限制达到时使用break达到:

uniform int loopLimit;

for (int i = 0; i < 10000; i++) {
if (i == loopLimit) break;
// Do your stuff
}

关于javascript - 在 WebGL 循环中使用制服(或类似)的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529183/

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