OpenGL 几何着色器,设置输入大小

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

3

几何着色器以基元作为输入,而不是顶点数目。我的意思是说,一个特定的基元由特定数量的顶点组成。但是几何着色器不使用顶点数目;它们使用基元。

有一些特殊的基元类型允许GS访问比基本基元类型中的顶点更多的顶点。但是这些顶点是用于引用与主要基元顶点相邻的顶点,如果试图将其作为消耗X个顶点的通用机制,则难以实现。

因此,您只能使用与基元的顶点数目匹配的顶点数:1、2、3、4或6。在这些特定的顶点数之外,你不能让GS做你想做的事情。

您可以尝试使用镶嵌技术,因为贴片顶点计数由用户指定(虽然受实现限制)。但是在生成顶点方面,镶嵌技术更加严格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接