我知道如何使用 VirtualGL 远程连接到服务器并运行 OpenGL 应用程序。 VirtualGL 允许图形应用程序的 2D 元素通过 SSH 连接从服务器机器传递到客户端机器,但拦截 3D 元素并在服务器机器上渲染它们,然后以流的形式将图像发送到客户端X 服务器。
但我希望能够以这样的方式运行安装在客户端计算机上的图形应用程序,即 2D 元素在本地渲染,而 3D 命令在封装后通过高速网络发送到渲染它们的服务器,然后将图像以流的形式发回。是否存在以这种方式工作的现有解决方案或 VirtualGL 配置?
最佳答案
我认为使用 VirtualGL 是不可能的。 VirtualGL 的工作原理是拦截 GLX 调用,将它们重定向到另一个 Xorg 服务器,使用 GL_ARB_pixel_buffer_object
扩展渲染帧,并通过网络将压缩图像发送到客户端。
VirtualGL 没有解决通过网络发送 GLX 调用的问题。
我试过“间接渲染”,但是有很多问题:
- 由于安全问题,默认情况下它是禁用的,
- 性能很糟糕,
- 它不提供 VirtualGL 所需的
GL_ARB_pixel_buffer_object
扩展。
关于opengl - 如何使用远程 GPU 进行硬件加速 3D 渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672571/