1

在顶点着色器中,我只使用制服来计算向量。因此,该计算的结果对于顶点着色器的所有实例都是相同的。我是否应该在 CPU 上进行此计算并将其作为制服上传?如果我有十个这样的计算怎么办?如果我以这种方式上传大量制服,CPU-GPU 通信是否会变得如此缓慢,以至于在顶点着色器中重新计算这些值实际上会更快?

4

1 回答 1

1

我实际上取决于制服/顶点计数比率。在顶点多于统一变量的情况下,最好在 CPU 上计算统一,这是最常见的情况。

在uniforms值很多并且它们的计算很复杂(即逆矩阵)的情况下,而顶点数很少,最好卸载CPU并在GPU上执行计算。

比率阈值很难确定,因为许多因素会影响着色器的执行。通常最好在 CPU 上计算大多数制服,以减轻着色器执行的负担。

注意:一旦你设置了统一变量,着色器程序将保持它们的值,直到它再次重新链接。

于 2010-04-13T05:35:41.763 回答