繁体   English   中英

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

[英]How can I run an OpenGL application installed on a linux machine from my windows machine?

本着乐于助人的精神,这是我遇到并解决的问题,所以我将在这里回答这个问题。

问题

我有:

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

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

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

此应用程序用于以工时为单位的时间密集型任务。

我不想坐在服务器机房里处理这个应用程序。

所以,问题来了……我如何从远程 Windows 机器运行这个应用程序?

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

解决方案

我安装了两个软件:

油灰

XMing-mesa台面部分很重要。

腻子配置

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 服务器绝对是更好的解决方案。 只需确保应用程序开发为联网即可。 它不应该使用立即模式进行渲染,并且应该很少传输纹理。

为什么在这种情况下 X 服务器是更好的解决方案(与 VNC 相对)? 因为您在工作站上获得加速,而 VNC 的解决方案通常甚至不会在大型机上加速。 因此,只要数据在 X 服务器上缓冲(使用顶点数组、顶点缓冲区对象、纹理对象等),您应该获得比使用 VNC 更高的速度,尤其是在复杂场景中,因为 VNC 必须将它们分析、传输和解码为像素。

如果您需要服务器 glx 1.2 版,免费版Xming (Mesa 2007) 可以正常工作。 但是如果您的应用程序需要 1.4 版,例如 qt5,Cygwin 的 X Server 可以免费运行它,使用以下命令:

[在服务器上]

sudo vi /etc/ssh/ssh_config

添加:

X11转发是

X11DisplayOffset 10

X11UseLocalHost 否

AllowTcpForwarding 是

TCPKeepAlive 是

ClientAliveInterval 30

ClientAliveCountMax 10000

sudo vi ~/.bashrc

添加:

出口显示=ip_from_remote:0

现在重启ssh服务器

[在客户幻灯片上]

运行以下命令后安装Cygwin64 (支持 X 包):

d:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/xinit /etc/X11/xinit/startxwinrc -- /usr/bin/XWin :0 -ac -multiwindow -listen tcp"

现在执行 ssh 客户端:

d:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -e /usr/bin/ssh -Y user_name@ip_from_server

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM