2008-12-16 20 views
4

我试图将一个包含大量纹理(没有任何移动)的openGL [我绘制的卡(?):) thx unwind]转换成一个PNG文件,我可以在另一个PNG文件中使用我正在使用的框架的一部分。有没有一个C++库可以做到这一点?openGL到PNG

谢谢!

+0

“我画的牌”是什么意思? – 2008-12-16 16:04:11

+0

这是一个静态的,不断的场景,看起来像一张卡... – majdal 2008-12-16 16:18:17

回答

10

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

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

1

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

1

有更好的方法来制作纹理而不是使用图形卡进行绘制。这是真正的事情你想要做的事情之前,你需要做的事情,然后在你需要的时候使用opengl