我正在尝试将包含大量纹理(没有任何移动)的openGL [编辑:“我绘制的卡片”(?):) thx unwind]转换为一个PNG文件,我可以在框架的另一部分中使用该文件我'我一起工作。是否有一个 C++ 库可以做到这一点?
谢谢!
如果您只是说“获取 OpenGL 渲染的场景并将其保存为图像”,那么它相当简单。您需要使用 glReadPixels() 读取场景,然后将该数据转换为图像格式,例如 PNG ( http://www.opengl.org/resources/faq/technical/miscellaneous.htm )。
还有更有效的方法可以实现这一点,例如使用FBO。您可以通过 FBO 将场景渲染为纹理,然后将该纹理渲染为全屏四边形,而不是将场景直接渲染到帧缓冲区中。然后,您可以获取此纹理并将其保存到文件中(例如,使用glGetTexImage)。
什么是“OpenGL 文件”?OpenGL 是一个图形 API,它没有指定任何文件格式。你的意思是DDS文件还是什么?
有比用显卡绘制它们更好的方法来制作合成纹理。这确实是您在 cpu 上之前想要做的事情,存储然后在需要时使用 opengl