如何捕获/导出JOGL动画到视频文件?我知道我可以使用glReadPixels()
通过PBO
抓取每个帧,但是我可以在网上找到一些库/源代码吗?或者有更好/更快的方式来做到这一点而不渲染整个场景?如果我使用glReadPixels()
方法,如果我调整托管OpenGL Canvas的窗口的大小,会有不同的捕获图像大小吗?
我已阅读以下文章:
PS:我需要这个适用于Mac OS X的软件。
答案 0 :(得分:0)
听起来你已经完成了大部分工作。我不确定某个地方是否有一个常用的lib,但它可能比仅仅实现它更需要查找和使用它。
当你说“没有渲染整个场景的更快的方式”时,当然你需要渲染一些东西来记录它,但是如果你想同时查看它,不要渲染两次。您可以通过FBO渲染,然后glBlitFramebuffer
将图像渲染到后台缓冲区,并使用glReadPixels
将结果复制回主内存进行编码。
鉴于编码可能需要一些时间,可能值得尝试以异步方式复制结果(一些讨论here)。
将图像直接写入磁盘并稍后使用ffmpeg等编码为视频也很容易,但当然不那么方便。
当您的窗口调整大小时,您必须手动调整FBO附件的大小。除非你没有使用FBO,否则我猜jogl会为你调整前/后缓冲区的大小。