【问题标题】:Performance difference between geometry shader and vertex shader几何着色器和顶点着色器之间的性能差异
【发布时间】:2012-11-02 05:04:26
【问题描述】:

目前正在渲染大约 100 万个顶点的模型。在顶点着色器中,我正在为每个顶点进行一些复杂的计算。现在我想提高模型的分辨率。 我对此有两个疑问:

  1. 是否建议使用几何着色器将分辨率提高到非常大的因子(例如 64 倍)?
  2. 如果我引入几何着色器,我可能需要将计算从顶点着色器转移到几何着色器。就性能而言,在顶点着色器中执行操作是否与在几何着色器中执行操作相同。

【问题讨论】:

  • 不知道为什么这个问题被标记了。对我来说似乎完全合理。

标签: opengl glsl shader


【解决方案1】:

是否建议使用几何着色器将分辨率提高到非常大的因子,例如 64 倍。

绝对不是。虽然 GS 可以放大几何图形并执行细分,但这并不是它们真正的用途。它们的主要用途是处理变换反馈数据(尤其是可以处理多流输出的硬件)和分层渲染。

如果我引入几何着色器,我可能需要将计算从顶点着色器转移到几何着色器。就性能而言,在顶点着色器中执行操作是否与在几何着色器中执行操作相同。

在 GS 中做的工作尽可能少。 GS 发生在 T&L 后缓存之后,您希望尽可能多地从中获得。因此,在顶点着色器中尽可能多地进行实际转换工作。

【讨论】:

  • “在 GS 中做尽可能少的工作是合理的。” -- 更一般地说,应该说“不要使用 GS ,但如果必须,请尽可能多地工作以减少输出”。几何着色器几乎总是受输出限制,实际上从不受 ALU 限制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2011-05-24
相关资源
最近更新 更多