glCopyTexImage2D 作为 glReadPixels (OpenGL ES) 的替代品 [英] glCopyTexImage2D as alternative to glReadPixels (OpenGL ES)

查看:24
本文介绍了glCopyTexImage2D 作为 glReadPixels (OpenGL ES) 的替代品的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在使用 glReadPixels 抓取 OpenGL ES 游戏的屏幕截图.屏幕截图很棒,但是对 glReadPixels 的调用会导致游戏出现小问题.

I'm currently grabbing a screenshot of an OpenGL ES game using glReadPixels. The screenshots are great however the call to glReadPixels causes a small stutter in the game.

glCopyTexImage2D 已被建议作为 glReadPixels 的更有效替代品.glCopyTexImage2D 是如何工作的?对于某些情况,我正在使用 这个 Apple 方法.

glCopyTexImage2D has been suggested as a more efficient replacement for glReadPixels. How does glCopyTexImage2D work? For some context I'm using this Apple method.

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

I'm relatively new to OpenGL so any help is much appreciated :-)

推荐答案

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

The time delay is caused by transferring a large amount of memory between GPU and CPU. This can be solved by transferring in chunks, a little bit per frame. But if you read from the framebuffer over a series of frame, the image would be changing meanwhile.

因此,您将视频 RAM 复制到视频 RAM 中(非常快),然后它不会随着您零碎地传输而改变.

So you make a copy, video RAM into video RAM (very fast), and then it won't change as you transfer it piecemeal.

这篇关于glCopyTexImage2D 作为 glReadPixels (OpenGL ES) 的替代品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆