【发布时间】:2020-07-29 23:32:44
【问题描述】:
我已经成功编写了我的第一个几何着色器。它接收线条并在每个线条的中心输出一个小三角形。 我可以很容易地对三角形做同样的事情,但是立方体呢?有没有办法让几何着色器对任意数量的点进行操作,或者至少超过 3 个?我知道我可以自己计算中心并进行另一个绘图操作,但我想知道它是否可以在着色器中。
谢谢。
【问题讨论】:
标签: opengl opengl-4 geometry-shader
我已经成功编写了我的第一个几何着色器。它接收线条并在每个线条的中心输出一个小三角形。 我可以很容易地对三角形做同样的事情,但是立方体呢?有没有办法让几何着色器对任意数量的点进行操作,或者至少超过 3 个?我知道我可以自己计算中心并进行另一个绘图操作,但我想知道它是否可以在着色器中。
谢谢。
【问题讨论】:
标签: opengl opengl-4 geometry-shader
几何着色器将 primitive 作为输入,而不是顶点数。我的意思是,一个特定的图元由特定数量的顶点组成。但是 GS 不计算顶点数;他们采用原语。
有许多特殊的原始类型允许 GS 访问比基本原始类型中的更多的顶点。但是这些是用于引用与主要图元顶点相邻的顶点,并且很难尝试使它们作为消耗 X 顶点的通用机制。
因此,您只能使用与primitive's vertex count 匹配的顶点数:1、2、3、4 或 6。在这些特定顶点数之外,您无法让 GS 做您想做的事情做。
您可以尝试使用曲面细分,因为补丁顶点计数是用户指定的(尽管受到实施的限制)。但是细分在生成顶点方面的限制更大。
【讨论】: