如何从我的Windows机器上运行安装在linux机器上的OpenGL应用程序?
题
本着帮助的精神,这是我遇到的问题并解决了,所以我将在这里回答这个问题。
<强>问题强>
我有:
必须在Redhat或SuSE企业上安装的应用程序。
它有很大的系统要求,需要OpenGL。
它是需要在一台机器上一起操作的一套工具的一部分。
此应用程序用于人工时间的时间密集型任务。
我不想坐在服务器室里工作这个应用程序。
所以,问题出现了......如何从远程Windows机器运行此应用程序?
我将概述我的解决方案。随意评论替代品。此解决方案也适用于更简单的环境。我的情况有点极端。
解决方案
<强>解决方案强>
我安装了两个软件:
XMing-mesa 台面部分非常重要。
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更有效率,因为它只发送绘图命令而不是像素,但如果你使用的是opengl,那么很可能大部分数据都是渲染图像。
VNC的另一大优势是您可以在服务器上本地启动程序,然后使用VNC连接它,断开连接,从另一台机器重新连接等,而不会干扰主运行程序。
对于OpenGL,运行X服务器绝对是一个更好的解决方案。只需确保应用程序开发为联网。它不应该使用立即模式进行渲染,并且应该对RARELY传输纹理。
为什么X服务器在这种情况下是一个更好的解决方案(而不是VNC)?因为你在工作站上获得加速,而VNC的解决方案通常甚至不会在大型机上加速。因此,只要数据在X服务器上缓冲(使用顶点数组,顶点缓冲区对象,纹理对象等),您应该比使用VNC获得更高的速度,尤其是对于复杂的场景,因为VNC必须分析,传输和解码它们。像素。