El *_*eon 7 c++ opengl cuda opengl-3
我正在研究一个C++跨平台的OpenGL应用程序(Windows,Linux和MacOS),我想知道你们中的一些人是否可以分享一些关于将大型应用程序移植到OpenGL 3的建议.我之所以研究OpenGL 3是因为我认为使用新的"同步对象"可以从中受益匪浅.自Geforce 256天(gl_nv_fences)以来,Nvidia一直支持这样的扩展,但在OpenGL 3.0 +之前似乎没有ATI硬件上的等效功能......
我们的代码大量使用了glut/freeglut,glu函数,OpenGL 2扩展和CUDA(在支持的硬件上).我现在面临的问题是"gl3.h"和"gl.h"互不兼容(如gl3.h中所述).你们知道GL3过量吗?此外,查看CUDA-toolkit头文件,似乎GL-CUDA互操作性仅在使用旧版本的OpenGL时可用...(cuda_gl_interop.h包括gl.h ...).我错过了什么吗?
非常感谢你的帮助.
glut 的最后一次更新是 3.7 版本,大约是 10 年前。考虑到这一点,我怀疑它是否会支持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 的功能(例如,所有矩阵操作基元)的支持。我个人认为这是一个错误,但无论好坏,事情就是这样。不幸的是,glu 有点像 glut——该规范的最后一次更新是在 1998 年,对应于 OpenGL 1.2。这并不意味着更新似乎根本不可能。不幸的是,我也不知道有任何真正直接的替代品。显然还有其他图形库提供(至少一些)类似的功能,但我能想到的所有这些都需要大量重写。
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |