我如何从我的Windows机器上运行安装在Linux机器上的OpenGL应用程序?

本着帮助的精神,这是一个我已经解决的问题,所以我会在这里回答这个问题。

问题

我有:

必须在Redhat或SuSE企业上安装的应用程序。

它有巨大的系统需求,需要OpenGL。

它是需要在一台机器上一起操作的一套工具的一部分。

此应用程序用于在工时方面的时间密集型任务。

我不想坐在这个应用程序的服务器机房工作。

所以,问题出现了…如何从远程Windows机器上运行此应用程序?

我将概述我的解决scheme。 随意评论替代品。 此解决scheme也适用于更简单的环境。 我的情况有点极端。

我安装了两个软件:

油灰

XMing台面台面部分是重要的。

PuTTY配置

Connection->Seconds Between Keepalives: 30 Connection->Enable TCP Keepalives: Yes Connection->SSH->X11->Enable X11 forwarding: Yes Connection->SSH->X11->X display location: localhost:0:0 

空空

运行Xming将放置一个简单的过程,并在系统托盘中放置一个图标。 用上面的配置启动putty,指向你的linux系统。 运行程序

希望成功!

如果你想要在本地机器上执行OpenGL渲染,使用Windows X服务器(如Xming)是一个很好的解决方案。 但是,如果要在远程端执行渲染,只发送到本地计算机的图像,则需要一个可以处理远程OpenGL渲染的专用VNC系统,如VirtualGL 。

你也可以使用VNC(比如跨平台的远程桌面),因为X只发送绘图命令而不是像素,所以X更加有效,但是如果你使用的是opengl,大部分的数据很可能是渲染的图像。

VNC的另一大优势是你可以在服务器上本地启动程序,然后用VNC连接它,断开连接,重新连接另一台机器等,而不会干扰主要的运行程序。

对于OpenGL来说,运行X服务器肯定是更好的解决方案。 只要确保应用程序的开发是联网的。 它不应该使用即时模式进行渲染,纹理应该很少传输。

为什么X服务器在这种情况下是一个更好的解决方案(而不是VNC)? 因为你在工作站上得到了加速,而VNC的解决方案在大型机上通常不会加速。 所以只要数据在X服务器上缓冲(使用顶点数组,顶点缓冲区对象,纹理对象等),你应该比使用VNC速度更快,特别是对于复杂的场景,因为VNC必须分析,传输和解码为像素。