适用于Linux的OpenGL 3D网格提取

时间:2013-07-24 19:20:18

标签: linux opengl 3d open-source

对于Windows,有许多工具可以通过截取OpenGL数据(例如3D Ripper DX,glintercept,Ogle,OpenGLXtractor,HijackGL)从程序中提取3D数据。

Linux有类似的工具吗?如果没有,是否可以制作一个? (如果有人有兴趣与我一起开始一个开源项目?)

我实际上会自动化这个过程,但那是另一个故事。

1 个答案:

答案 0 :(得分:3)

首先警告:OpenGL不是场景图。在OpenGL中没有“场景”或“对象”(在物理上的物理意义上)。 OpenGL所做的就是为场景绘制点,线和三角形,一次一个,彼此独立。因此拦截OpenGL绘图调用以提取对象本质是不可靠的。也就是说,大多数使用OpenGL的程序都是这样做的,这样就可以提取渲染的几何体并将其解释为对象。

我的黑客空间的另一名成员编写了一个拦截OpenGL调用以提取网格的工具(最初的用途是我们可以在我们的RepRap上3D打印游戏资产和类似物)。可在此处找到此工具的来源https://github.com/mazzoo/ogldump

然而 ogldump 非常有限。它不支持顶点缓冲对象(VBO),交错的顶点数组可能会搞乱,并且着色器和通用顶点属性之类的东西完全没有被清除。如果你愿意,可以随意打补丁。