gpt4 book ai didi

webgl - 我需要多久更新一次制服?

转载 作者:行者123 更新时间:2023-12-04 21:18:12 26 4
gpt4 key购买 nike

我见过的所有 WebGL 示例代码都调用 gl.useProgram(),然后为程序设置每个统一,每帧一次。问题是,您在 WebGL 项目中可以做的最昂贵的两件事是运行 Javascript 行并将内容从 Javascript 复制到着色器中,并且每个人每秒都执行 60 次。另外,我知道我的大部分制服,在我自己的程序中,不会随帧变化。 (主要是轻量级的位置等等,你可能会弄乱但通常不会的东西。)

我的问题是,WebGL 规范是否对制服的值保留多长时间有任何说明?如果我调用 gl.useProgram(),我刚刚停止使用的程序可能会丢失它的制服吗?如果调用 gl.useProgram() 打乱了制服,我可以不每帧都调用它,并保留我的制服吗?

如果我可以强制所有用户永远只运行 Firefox 22.0,我可以编写和运行一些测试代码,并在瞬间解决这个问题。可惜...

最佳答案

制服的值(value)与特定程序相关联。它不会因为您切换到另一个程序而消失。 (我手边没有规范引用。)

由于以下原因之一,您看到的代码可能是每帧设置制服:

  • 简单的懒惰:这肯定会奏效,其他事情需要考虑。
  • 从其他情况下复制代码,在这些情况下,每帧都需要设置统一。
  • 复杂的懒惰:通常很难准确定义参数的正确值确实发生变化的情况,因此只需在每一帧重新计算它。或者,确定是否需要更改甚至可能在计算上更加昂贵!

  • 此外,每帧都做制服也不错,因为只有几件制服,而且数据也不多。计算或复制顶点数组或其他每个场景对象的东西是你应该首先担心的事情。

    关于webgl - 我需要多久更新一次制服?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17825364/

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