如何通过远程连接高效使用3D?

如何通过远程连接高效使用3D?

我有一台较弱的 PC(客户端),但具有可接受的 3D 性能,以及一台强大的 PC(服务器),它应该能够使用 OpenGL 运行应用程序两次,即一次在本地,一次为客户端远程。目前,我ssh -X对此很感兴趣,但客户端的控制台输出表明使用了软件渲染,并且我每秒只能获得 3 帧 (fps)。实际上,ssh 的加密是不必要的,因为这是在 LAN 上,但这是我已经知道的远程应用程序......

那么,如何提高客户端性能呢?我的想法是

  • 使用硬件加速,但是服务器或客户端的加速如何?
  • 使用与 ssh 不同的东西

我知道,在全分辨率且没有复杂的压缩的情况下,100 Mbit/s LAN 不会产生更多的 fps,但它是 ca 的窗口应用程序。 800x450,因此理论上使用未压缩的图形数据应该可以达到 12 fps(24 位/像素)。也许使用客户端自己的 GPU 或某种智能压缩可以实现更好的效果。

--

编辑事实证明我想要的基本上是本地版本,例如直播盖凯优惠。 Linux 上有类似的东西吗(而且可能是免费的)?

--

编辑2VirtualGL 看起来是最好的解决方案(虽然目前不适合我),但我想知道是否也可以在客户端上进行硬件渲染

答案1

你可以看看虚拟GL和...一起涡轮VNC应该为您提供 20fps @ 1280x1024 on 100 Mbit (参见维基百科)。

请注意,它可能不适用于所有应用程序,这取决于它们如何使用 OpenGL。

答案2

这是一个老问题,但仍然具有现实意义。有一个分步手册介绍如何在本地硬件上配置远程应用程序的 X11 3D 渲染并对其进行故障排除:通过远程 x11 ssh 连接进行 OpenGL 硬件加速

本文以 Chromium BSU 游戏为例。它的运行速度为 5-8 FPS(通过 SSH 连接进行默认软件渲染)、30 FPS(使用间接硬件渲染)以及 >30 FPS(使用未加密的 TCP X11 连接)。请注意,它仅适用于某些应用程序。

文章简要摘要

默认 X11 服务器配置中禁用间接渲染和 TCP 连接。+iglx and -listen tcp参数启用它们。还有LIBGL_ALWAYS_INDIRECT=1一个变量强制在 X11 客户端上进行间接渲染。

答案3

如果您有两台台式电脑,情况可能就是如此。但是,如果您有一台可以在家中任何地方使用的旧 WiFi 笔记本电脑(例如,以 Ubuntu 10.04 作为客户端的 Ti5600,以及带有 GTX 板和备用 Wi-Fi 路由器的台式电脑,那么拥有一个远程 OpenGL 客户端似乎是个好主意。

问题是获取远程(服务器端)OpenGL 上下文。您可以在客户端上运行 ssh -X。但是,如果您在远程系统上运行 glxinfo,您将获得本地客户端,这将使您回到开始的位置。您可以将 DISPLAY 环境变量设置为该远程主机,并且可以将该屏幕用作第二个显示器,但这仍然没有帮助。

另一种解决方案是编写桌面应用程序,以便它们可以使用远程 GLX 上下文:

http://arrayfire.com/remote-off-screen-rendering-with-opengl/

相关内容