gluTess *函数是否已被弃用?

时间:2017-01-10 23:32:26

标签: c++ opengl glfw glu

我正在开发一个OpenGL项目,我正在寻找三角测量/曲面细分功能。我看到很多对GLUtessellator和相关gluTess*函数的引用(例如here)。

我也在使用GLFW,它在its guides中一遍又一遍地重复:

  

GLU已被弃用,不应在新代码中使用,但某些遗留代码需要它。

这是否包括曲面细分功能?研究一个不同的库在OpenGL中创建复杂的多边形会不会是明智的?

2 个答案:

答案 0 :(得分:1)

GLU是一个图书馆。虽然它进行OpenGL调用,但它实际上并不是OpenGL的一部分。它不是由OpenGL规范定义的。因此该规范不能“弃用”或删除它。

然而,GLU通过从核心OpenGL中删除的OpenGL函数完成了大部分工作。如果您尝试使用核心OpenGL内容,则不应使用GLU。

答案 1 :(得分:0)

这里有一点补充。此处应注意的是,在原始 gluTess* 实现方面还存在更现代的替代方案,它们在简单性和通用性方面遵循原始概念。

一个值得注意的替代方案是 Libtess2,它是原始 libtess 的重构版本。

https://github.com/memononen/libtess2

它使用不同的 API,它与 OpenGL 顶点数组 API 大致相似。但是,libtess2 似乎“按数量级”优于原始 GLU 参考实现。 ;-)

当前官方的 OpenGL 4.0 Tessellation 原则需要明确兼容的 GPU 硬件。 (这很可能适用于所有 DirectX 11 和更新的兼容硬件。)可在此处找到有关当前 OpenGL 曲面细分概念的更多信息:

https://www.khronos.org/opengl/wiki/Tessellation