0

目前我正在使用 OSMesa 进行离屏渲染。我在 linux (RHEL) 命令行界面上运行它。它工作得非常好,但渲染会消耗大量时间。基本上我在屏幕外运行opengl动画并动态捕捉帧并使用ffmpeg创建视频。所以,我的问题是,是否可以使用 GPU 进行离屏渲染以加快渲染过程。我知道我可以使用 FBO,但我认为它们需要由于 linux CLI 而我没有的窗口支持。简而言之,在我的情况下是否可以使用 FBO,或者加快渲染过程的最佳解决方案是什么?

4

1 回答 1

1

所以,我的问题是,是否可以使用 GPU 进行离屏渲染以加快渲染过程。

原则上是的,但到目前为止,还没有关于如何做到这一点的标准 API。如果您使用的是 NVidia GPU,则可以将无头 EGL 与 Nvidia 专有驱动程序一起使用:https ://devblogs.nvidia.com/parallelforall/egl-eye-opengl-visualization-without-x-server/

使用 Kernel DRM 和 Mesa OpenGL 驱动程序,可以在没有显示服务器的情况下在单个进程中配置和操作 GPU。有一个名为“kmscube”的演示,我将它分叉到我的 GitHub 并对其进行了一些小修改:https ://github.com/datenwolf/kmscube在当前状态下,kmscube 将绘制到屏幕上,但应该可以以某种方式更改连接器的选择,从而获得完整的屏幕外渲染。

此外,整个 Wayland 基础设施都围绕着为客户端提供任意帧缓冲区进行渲染的可能性,然后合成器组合,因此查看 Wayland 合成器如何分配屏幕外帧缓冲区供 Wayland 客户端使用的方式也值得一看。

于 2016-07-24T09:13:19.643 回答