我想在Linux系统上使用C,OpenGL渲染凹多边形。任何人都可以提供示例代码,这将如何在最新版本的OpenGL中完成(比如根据glxinfo NVIDIA驱动程序352.41支持的OpenGL 4.5,但是无论您喜欢的3+版本支持在Linux硬件上实现的扩展(至少由NVIDIA) 。OpenGL 3+渲染凹面多边形(不含GLU)
这个question上的stackoverflow指向使用GLU tesselation,这已被弃用。使用模板缓冲的方法,我不完全了解,但如果这是现在这样做的“行业接受的标准”,我会加大理解。
这个post是指一个.NET库,我不想在Linux和C上使用,tesselation着色器,我会喜欢一个如何使用的例子,但是我可以找到的所有例子都是从凸面补丁开始的,图书馆为了后代迁移到另一个我想离开的存储库。
谢谢。
您是渲染孤立的凹多边形,还是一堆例如网格的一部分? –
OpenGL是一个渲染三角形的系统。这是唯一的原始人。如果你想渲染凹面或凸面多边形,你必须自己提供分解。你可以用几何着色器来做,但你必须接受输入顶点(有限制),分解成三角形并输出基元。如果我没有记错的话,Graphics Gems I(网上可用)中有一些算法用于镶嵌任意多边形。 – Robinson
尽管GLU已被弃用,但镶嵌代码并不算太坏,实际上并没有与OpenGL绑定。 [libtess2](https://github.com/memononen/libtess2)实际上是Mesa的GLU实现中细分的曲面细分功能。 –