我目前正在使用 glReadPixels 抓取 OpenGL ES 游戏的屏幕截图。屏幕截图很棒,但是对 glReadPixels 的调用会导致游戏出现轻微的卡顿。
glCopyTexImage2D 已被建议作为 glReadPixels 的更有效替代品。 glCopyTexImage2D 如何工作?对于某些情况,我使用 this Apple method

我对 OpenGL 比较陌生,所以非常感谢任何帮助:-)

最佳答案

时间延迟是由 GPU 和 CPU 之间传输大量内存引起的。这可以通过分块传输来解决,每帧传输一点。但是,如果您在一系列帧上从帧缓冲区中读取数据,则图像会同时发生变化。

因此,您将视频 RAM 复制到视频 RAM(非常快),然后在您逐步传输时它不会改变。

10-08 07:29
查看更多