如何 运行 libGDX 无头,没有 GPU,但仍然渲染帧?

How to run libGDX headless, without GPU, but still rendering frames?

我正在 Ubuntu 服务器上研究基于 运行 libGDX 的应用程序。服务器没有 GPU。目的是渲染定义为 libGDX "games" 的动画。完美的设置会将帧通过管道输出到标准输出。我可以使用某种软件模拟 GPU。

我知道 libGDX 无头模式,但据我所知它不会渲染任何图形。

LibGDX on Linux 依赖于 LWJGL 库来设置渲染支持。所以,你想知道的是 if/how LWJGL 可以 运行 没有 GPU。 LibGDX 和 LWJGL 都公开了相当低级的 OpenGL 命令,所以我认为您需要的是 Mesa 库(它公开了 OpenGL 支持,但在软件中完成了所有操作)。

来自这个问题: Does LWJGL (bare) use software or hardware rendering? 看来你可以要求 LWJGL 不需要硬件支持。但是,我认为您仍然需要启用一些软件支持(我相信那就是 Mesa)。

如果你让这个堆栈正常工作,我认为下一步是让你的 "game" 渲染到 FrameBuffer and then use Libgdx to render the FrameBuffer to file inside libgdx or OpenGL。 (也有一些方法可以让堆栈的较低层呈现到文件中。)