【问题标题】:OpenGL geometry shader, setting input sizeOpenGL几何着色器,设置输入大小
【发布时间】:2020-07-29 23:32:44
【问题描述】:

我已经成功编写了我的第一个几何着色器。它接收线条并在每个线条的中心输出一个小三角形。 我可以很容易地对三角形做同样的事情,但是立方体呢?有没有办法让几何着色器对任意数量的点进行操作,或者至少超过 3 个?我知道我可以自己计算中心并进行另一个绘图操作,但我想知道它是否可以在着色器中。

谢谢。

【问题讨论】:

    标签: opengl opengl-4 geometry-shader


    【解决方案1】:

    几何着色器将 primitive 作为输入,而不是顶点数。我的意思是,一个特定的图元由特定数量的顶点组成。但是 GS 不计算顶点数;他们采用原语。

    有许多特殊的原始类型允许 GS 访问比基本原始类型中的更多的顶点。但是这些是用于引用与主要图元顶点相邻的顶点,并且很难尝试使它们作为消耗 X 顶点的通用机制。

    因此,您只能使用与primitive's vertex count 匹配的顶点数:1、2、3、4 或 6。在这些特定顶点数之外,您无法让 GS 做您想做的事情做。

    您可以尝试使用曲面细分,因为补丁顶点计数是用户指定的(尽管受到实施的限制)。但是细分在生成顶点方面的限制更大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      相关资源
      最近更新 更多