4

我正在尝试将包含大量纹理(没有任何移动)的openGL [编辑:“我绘制的卡片”(?):) thx unwind]转换为一个PNG文件,我可以在框架的另一部分中使用该文件我'我一起工作。是否有一个 C++ 库可以做到这一点?

谢谢!

4

3 回答 3

11

如果您只是说“获取 OpenGL 渲染的场景并将其保存为图像”,那么它相当简单。您需要使用 glReadPixels() 读取场景,然后将该数据转换为图像格式,例如 PNG ( http://www.opengl.org/resources/faq/technical/miscellaneous.htm )。

还有更有效的方法可以实现这一点,例如使用FBO。您可以通过 FBO 将场景渲染为纹理,然后将该纹理渲染为全屏四边形,而不是将场景直接渲染到帧缓冲区中。然后,您可以获取此纹理并将其保存到文件中(例如,使用glGetTexImage)。

于 2008-12-16T16:29:02.313 回答
1

什么是“OpenGL 文件”?OpenGL 是一个图形 API,它没有指定任何文件格式。你的意思是DDS文件还是什么?

于 2008-12-16T15:45:00.293 回答
1

有比用显卡绘制它们更好的方法来制作合成纹理。这确实是您在 cpu 上之前想要做的事情,存储然后在需要时使用 opengl

于 2008-12-16T16:11:02.583 回答