2008-09-19 5 views
6

Im Geiste hilfreich zu sein, das ist ein Problem, das ich hatte und gelöst, also werde ich die Frage hier beantworten.Wie kann ich eine OpenGL-Anwendung, die auf einem Linux-Rechner installiert ist, von meinem Windows-Rechner ausführen?

Problem

ich habe:

Eine Anwendung, die auf Redhat oder SuSE Enterprise installiert werden muss.

Es hat große Systemanforderungen und erfordert OpenGL.

Es ist Teil einer Reihe von Tools, die auf einer Maschine zusammenarbeiten müssen.

Diese Anwendung wird für eine zeitaufwendige Aufgabe in Bezug auf Arbeitsstunden verwendet.

Ich möchte nicht im Serverraum sitzen auf dieser Anwendung arbeiten.

Also, die Frage kam ... Wie führe ich diese Anwendung von einem Remote-Windows-Rechner?

Ich werde meine Lösung skizzieren. Fühlen Sie sich frei, Alternativen zu kommentieren. Diese Lösung sollte auch für einfachere Umgebungen funktionieren. Mein Fall ist etwas extrem.

+0

Sie sollten Ihre Lösung als Antwort nicht als Teil der Frage posten! –

+0

Sieh mich an, ich bin dumm. Do! – scubabbl

+0

Dort habe ich es behoben. Ich fühle mich jetzt dumm. – scubabbl

Antwort

8

Lösung

Ich installierte zwei Stücke von Software:

PuTTY

XMing-mesa Die Mesa Teil ist wichtig.

PuTTY Konfiguration

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 

lauching

Run Xming, die einfach einen Prozess gesetzt wird gestartet und ein Symbol in der Taskleiste setzen. Starten Sie Putty, zeigt auf Ihre Linux-Box, mit der obigen Konfiguration. Programm ausführen

Hoffentlich, Erfolg!

+0

Ich habe nie die Keepalive-Einstellung benötigt - dies könnte spezifisch für eine übermäßig schützende Firewall sein, die Sie betreiben. –

+0

Ich habe das schon mal gemacht; sehr nützlich. =] – strager

+1

Dies ist eine sehr nützliche Methode, aber ich fand, dass ich für die Arbeit musste ich "Connection-> SSH-> X11-> X-Anzeige Ort: localhost: 0", und nicht localhost: 0: 0 wie gepostet – RonenKi

2

Sie könnten auch VNC (wie Cross-Plattform Remote-Desktop) X mehr efficent ist, da es sendet nur als Pixel Befehle eher ziehen, aber wenn Sie opengl es wahrscheinlich ist, verwendet werden, dass die meisten der Daten ist ein gerendertes Bild sowieso. Ein weiterer großer Vorteil von VNC ist, dass Sie das Programm lokal auf dem Server starten und dann mit VNC verbinden können, die Verbindung abbrechen, die Verbindung zu einem anderen Computer wieder herstellen können, ohne das laufende Hauptprogramm zu stören.

+0

Ich habe versucht, VNC, was alles, was ich im eigentlichen OpenGL-Fenster bekam, war ein Schachbrettmuster. – scubabbl

+0

Klingt, als ob das Opengl Hardware-Funktionen der Grafikkarte verwendet. Es gibt erweiterte VNC-Implementierungen für Windows, die den Grafiktreiber haken. –

+0

Nein das Problem dort, dass der VNC auf dem Server OpenGL nicht unterstützt; Alle Windows-Rechner sehen mit jedem VNC eine Bitmap. (Ich habe noch einen X11 VNC Server zu sehen, der GLX unterstützt). – timday

6

Wenn das OpenGL-Rendering auf Ihrem lokalen Computer ausgeführt werden soll, ist die Verwendung eines Windows X-Servers wie Xming eine gute Lösung. Wenn Sie jedoch das Rendering auf dem Remote-Ende nur mit Bildern durchführen möchten, die an den lokalen Computer gesendet werden, benötigen Sie ein spezialisiertes VNC-System, das Remote-OpenGL-Rendering wie VirtualGL verarbeiten kann.

0

Für OpenGL ist die Ausführung eines X-Servers definitiv eine bessere Lösung. Stellen Sie nur sicher, dass die Anwendung für die Vernetzung entwickelt wurde. Es sollte NICHT den unmittelbaren Modus für das Rendering verwenden und Texturen sollten RARLEY übertragen werden.

Warum ist X Server in diesem Fall eine bessere Lösung (im Gegensatz zu VNC)? Weil Sie eine Beschleunigung auf der Workstation erhalten, während die VNC-Lösung normalerweise nicht einmal auf dem Mainframe beschleunigt wird. Solange also Daten auf dem X-Server gepuffert werden (mit Vertex-Arrays, Vertex-Buffer-Objekten, Textur-Objekten usw.), sollte VNC vor allem bei komplexen Szenen deutlich schneller sein als VNC, da VNC sie analysieren, übertragen und dekodieren muss Pixel.

Verwandte Themen