我目前正在使用 glReadPixels
抓取 OpenGL ES 游戏的屏幕截图。屏幕截图很棒,但是对 glReadPixels
的调用会导致游戏出现轻微的卡顿。glCopyTexImage2D
已被建议作为 glReadPixels
的更有效替代品。 glCopyTexImage2D
如何工作?对于某些情况,我使用 this Apple method 。
我对 OpenGL 比较陌生,所以非常感谢任何帮助:-)
最佳答案
时间延迟是由 GPU 和 CPU 之间传输大量内存引起的。这可以通过分块传输来解决,每帧传输一点。但是,如果您在一系列帧上从帧缓冲区中读取数据,则图像会同时发生变化。
因此,您将视频 RAM 复制到视频 RAM(非常快),然后在您逐步传输时它不会改变。