it-swarm.com.de

Wie können OpenGL-Grafiken mit VNC remote angezeigt werden?

Ich versuche, ein Programm auszuführen, das OpenGL verwendet, um ein Modell in einem Ansichtsfenster über VNC erfolglos zu rendern.

Die Fehlermeldung, die ich erhalte, lautet - Xlib: Erweiterung "GLX" fehlt auf Anzeige ": 1.0".

Nach meinem Verständnis kann VNC so konfiguriert werden, dass alle Grafiken remote gerendert und ein komprimierter Screenshot aus dem Anzeigepuffer an den lokalen Client gesendet werden. Dies scheint die Notwendigkeit von GLX-Erweiterungen auf dem lokalen Client zu negieren. Kann VNC auf diese Weise konfiguriert werden und können Sie kurz beschreiben, wie?

Remote-Host:

vncserver auf RHEL 5

Lokaler Client:

UltraVNC unter Windows XP

25
Jared Brown

Vielleicht möchten Sie sich Virtual GL ansehen

Zitat: "VirtualGL ist ein Open-Source-Paket, mit dem jede Unix- oder Linux-Remote-Display-Software OpenGL-Anwendungen mit vollständiger 3D-Hardwarebeschleunigung ausführen kann."

17
totaam

Ich verwende x11vnc , um Fernzugriff auf alles zu erhalten, was der Monitor anzeigt. x11vnc kommuniziert mit dem lokalen X11-Server und kopiert den Framebuffer über vnc vom Server auf den Client. Da der lokale X11-Server alles mit Hardwarebeschleunigung rendert, wird OpenGL über VNC hardwarebeschleunigt, selbst mit all den coolen Desktop-Effekten. So starte ich x11vnc:

x11vnc -rfbauth ~/.vnc/passwd  -display :0 -forever -bg -repeat -nowf -o ~/.vnc/x11vnc.log

Ich denke, fast jeder VNC-Viewer funktioniert, aber ich würde Turbovnc oder Tigervnc empfehlen. Ich habe zuerst VirtualGL ausprobiert und es funktioniert einwandfrei, aber nicht für den gesamten Desktop, sondern nur für einzelne OpenGL-Anwendungen.

Es ist sogar möglich, die Auflösung auf dem Display/vnc mit xrandr zu ändern. Z.B. so was:

xrandr -q (to see available modes and outputs)
xrandr --output DVI-I-0 --mode "1024x768" (change mode on DVI output)

(Es ist möglich, neue Auflösungen hinzuzufügen, wenn die verfügbaren Modi nicht ausreichen, aber das liegt hier außerhalb des Bereichs.)

Jetzt habe ich eine vollständig OpenGL-hardwarebeschleunigte und anpassbare VNC-Sitzung.

14
Henrik

Deaktivieren Sie den speziellen Video Hook-Treiber, den UltraVNC verwendet, oder verwenden Sie TightVNC.

Da der UltraVNC-Treiber zur Verbesserung der Leistung verwendet wird, werden alle auf der Grafikkarte ausgeführten Videoverarbeitungen wie OpenGL eingestellt.

Der Videotreiber, den UltraVNC standardmäßig installiert, macht es so, dass OpenGL-Grafiken nicht angezeigt werden können. Beachten Sie, dass das Deaktivieren des Treibers die Leistung drastisch verringert. Beachten Sie auch, dass beim Anzeigen von Elementen, die in OpenGL gerendert werden, die Leistung an beiden Enden beeinträchtigt wird, da der Clientcomputer jetzt viel mehr Arbeit zu erledigen hat und die erforderliche Bandbreite viel höher ist. Erwarten Sie nichts länger als 4 Sekunden pro Frame (nicht 4 fps, eher 0,25 fps)

1
IceMage