将项目移植到OpenGL3

我正在研究一个C ++跨平台的OpenGL应用程序(Windows,Linux和MacOS),我想知道是否有些人可以分享一些关于将大型应用程序移植到OpenGL 3的建议。我研究OpenGL 3的原因是因为我认为我们可以从使用新的“同步对象”中获益很多。 Nvidia从Geforce 256天(gl_nv_fences)开始就支持这种扩展,但在OpenGL 3.0 +之前似乎在ATI硬件上没有相应的功能......

我们的代码使得glut / freeglut,glu函数,OpenGL 2扩展和CUDA(在支持的硬件上)的使用量非常大。 我现在面临的问题是“gl3.h”和“gl.h”是相互不兼容的(如gl3.h中所述)。 你们知道是否有GL3的同类产品? 另外,看一下CUDA工具包头文件,似乎GL-CUDA互操作性只有在使用旧版本的OpenGL时才可用...(cuda_gl_interop.h包含gl.h ...)。 我错过了什么吗?

非常感谢你的帮助。


最近更新的版本是大约10年前的3.7版本。 考虑到这一点,我怀疑它会支持OpenGL 3.x(或4.x)。

在OpenGlut上工作的人似乎在考虑OpenGL 3.x支持的可能性,但还没有做任何事情。

FLTK有一个(部分)的过度模拟,但它的部分足够让一个“大量使用过剩”的程序可能无法在第一时间使用它。 由于FLTK正在积极开发中,我猜想它最终会支持OpenGL 3.x(或4.x),但我不相信它已经提供,并且可能会有疑问, 。

编辑:就CUDA而言,显而易见的(尽管肯定不是微不足道的)答案是使用OpenCL代替。 这与硬件(例如,ATI / AMD主板)和更新版本的OpenGL相兼容。

那留下glu。 坦率地说,我不认为有明确或明显的答案。 OpenGL的从支撑之类的东西Glu和而不是丢弃甚至更多的曾经是核心的OpenGL规范(例如,所有的矩阵操作的原语)的一部分的隐约谷氨酸样功能支持移动离开 。 就我个人而言,我认为这是一个错误,但无论它是好还是坏,事情就是这样。 不幸的是,glu有点像过剩 - 这个规范的最后一次更新是在1998年,对应于OpenGL 1.2。 这根本不会使更新看起来可能。 不幸的是,我不知道它有任何真正的直接替代品。 显然还有其他图形库提供(至少一些)类似的功能,但是我所能想到的所有图形库都需要大量的重写。

链接地址: http://www.djcxy.com/p/1003.html

上一篇: Porting a project to OpenGL3

下一篇: modify the body text of existing function objects