我目前正在尝试编写一个程序,该程序将网格作为输入(由顶点位置和元素数组组成)并输出用于glDrawElements()
inGL_TRIANGLES_ADJACENCY
模式的索引。
我在尝试编写代码时突然想到非封闭网格具有可能没有三个邻居的三角形。例如,由单个三角形组成的网格没有相邻的三角形。
在这种情况下,索引 2、4 和 6 应该是什么?似乎应该有一种标准的方法来告诉几何着色器一个或多个相邻的三角形不存在。但是,我在 OpenGL 规范 (v4.3) 中找不到这方面的信息。
单个三角形是一个愚蠢的例子,但是有很多网格并不是所有的三角形都连接到其他三个三角形上——例如,一个端部开口的圆柱体。
是否有处理此类案件的标准方法?如果我错过了规范中明显的内容,我深表歉意。
上图从 OpenGL 4.3 规范复制而来。