我已经准备好几个有关恒定顶点属性和统一性的主题。已经找到了一些区别,但是不明白为什么需要它们。看来我总是可以使用制服代替CVA。有没有适合他们的好用例?
我认为常量顶点属性(或CVA)不是标准术语。至少我从未听说过,您所链接的gamedev问题中的人们对此也感到困惑。所以我不认为它被广泛使用。
但是根据上下文,我知道了您的要求。您正在考虑在顶点着色器中使用属性的情况。但是,与其从缓冲区中拉出它们,不如像glVertexAttrib4f()
在进行绘制调用之前那样,通过调用设置它们,这意味着该值将保持不变,直到再次更改它为止。规范将这些值简称为“当前顶点属性值”。
现在,如果您应该以这种方式使用属性或制服,则没有明确的答案。通常,相对性能将取决于平台/硬件。我个人的观点是:
这也与规范所说的一致。在关于制服的介绍部分中,它说(强调):
这些制服的值在图元上是恒定的,并且通常在许多图元上是恒定的。
统一更新在某些平台上可能非常有效,并且应用程序相当频繁地更改统一值当然并不罕见。但是恕我直言,这不是制服的预定用途。他们没有被称为制服!
根据使用情况,还有一些其他差异可能会使一个或另一个更具吸引力:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句