OpenGL grafikleri VNC kullanılarak uzaktan nasıl gösterilebilir?


24

Başarısız bir VNC aracılığıyla bir görünümde model oluşturmak için OpenGL kullanan bir program çalıştırmaya çalışıyorum.

Aldığım hata mesajı - Xlib: "GLX" uzantısı ": 1.0" göstergesinde eksik.

Anladığım kadarıyla VNC tüm grafikleri uzaktan görüntüleyecek ve ekran arabelleğinden yerel istemciye sıkıştırılmış bir ekran yakalama gönderecek şekilde yapılandırılabilir. Bu, yerel istemcide GLX uzantılarına olan ihtiyacı reddetmiş görünmektedir. VNC bu şekilde yapılandırılabilir mi ve kısaca nasıl tarif edebileceğinizi açıklayabilir misiniz?

Uzak ana bilgisayar:

RHEL 5’te vncserver

Yerel müşteri:

Windows XP'de UltraVNC


OpenGL programı RH # L5 konsolunda yerel olarak çalışacak mı? X-Windows ile uzaktan çalışacak mı? Olmazsa, VNC üzerinde çalışmaz.
kmarsh

2
Bu neden bir Topluluk Wiki'si?
Chris S

Bir topluluk wiki olsaydı, insanların arşivleme ile daha ilgili olması için soruyu düzenleyebileceklerini düşündüm.
Jared Brown

Yanıtlar:


17

Sanal GL'ye bakmak isteyebilirsiniz

Alıntı: "VirtualGL, herhangi bir Unix veya Linux uzaktan görüntüleme yazılımına OpenGL uygulamalarını tam 3B donanım ivmesiyle çalıştırma olanağı sağlayan açık kaynaklı bir pakettir"


14

Monitörün gösterdiği her şeye uzaktan erişim sağlamak için x11vnc kullanıyorum . x11vnc yerel X11 sunucusuyla konuşur ve çerçeveyi sunucudan istemciye vnc aracılığıyla kopyalar. Yerel X11 sunucusu her şeyi donanım ivmesiyle oluşturduğundan, tüm harika masaüstü efektleriyle bile donanım hızlandırmalı VNC üzerinden OpenGL hızlandırıyorum. X11vnc'i şöyle başlatıyorum:

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

Neredeyse tüm vnc izleyicilerin çalıştığını düşünüyorum, ancak turbovnc veya tigervnc'i tavsiye ederim. Önce VirtualGL'i denedim ve iyi çalışıyor, ancak tüm masaüstü için değil, yalnızca bireysel OpenGL uygulamaları için çalışıyor.

Xrandr kullanarak ekran / vnc'deki çözünürlüğü değiştirmek bile mümkün. Örneğin böyle:

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

(Kullanılabilir modlar yeterli değilse, yeni çözünürlükler eklemek mümkündür, ancak bu kapsamın dışındadır.)

Yani şimdi tamamen OpenGL donanım hızlandırılmış ve yeniden boyutlandırılabilir bir VNC oturumu var.


1
Bu yaklaşımı xfce4 ve blender ile bir Tesla K80 GCE makinesinde denedim ... kusursuz çalıştı. Gnome-shell hala her zaman olduğu gibi bir sebepten dolayı düzgün şekilde görüntülenmiyordu. askubuntu.com/questions/229989/…
Ray Foss

1

UltraVNC'nin kullandığı özel Video Kanca sürücüsünü devre dışı bırakın veya TightVNC'yi kullanın.

UltraVNC sürücüsü performansı artırmak için kullanıldığından, Video Kartta (OpenGL gibi) yapılan her türlü video işlemeyi durdurur.

UltraVNC’nin bunu varsayılan olarak yüklediği video sürücüsü, OpenGL grafiklerini görüntüleyememesini sağlıyor. Sürücüyü devre dışı bırakmanın performansı büyük ölçüde azaltacağını unutmayın. Ayrıca, OpenGL performansında gösterilen öğeleri görüntülerken, istemci makinenin artık yapacak daha çok işi olduğundan ve gereken bant genişliğinin çok daha yüksek olması nedeniyle her iki ucunda da acı olacağını unutmayın. Kare başına 4 saniyeden fazla bir şey beklemeyin (4 fps değil, 0.25 fps gibi)


UltraVNC'deki video kancasını devre dışı bırak deyince yerel istemciye mi bakıyorsunuz? Uzak ana bilgisayarda çalışan vncserver'ın bunun yerine yapılandırılması gerekmiyor mu?
Jared Brown

Hayır, yerel müşteriyi kastediyorum. UltraVNC, onunla birlikte yüklenen bir video sürücüsü içerir. Aksi açıkça belirtmediğiniz sürece, video sürücüsü istemci ucundaki tüm videoyu işlemeye çalışacak ve böylece ağ üzerinden kullanım için sıkıştırıp yayınlayacaktır. Bazen görüntüleyicide bu özelliği kullanmak istemediğinizi belirtmek mümkündür, ancak UltraVNC (en azından buna alışkın) bunu görmezden gelme eğilimindedir.
IceMage

Ayrıca, uzak ve yerel bakış açınıza bağlıdır. Yerel derken, gerçekten Ana Bilgisayar (yeni bağlantıları dinleyen bilgisayar) ve Uzaktan bağlantıyı yapan bilgisayar anlamına gelir. Bunu gelecekteki yayınlar için düzelteceğim.
IceMage

Tamam - Sanırım tam tersini kullanıyorum. UltraVNC görüntüleyiciyi kurduğumda, yüklü bir video sürücüsü olduğuna inanmıyorum. Bildiğim UltraVNC sunucusu var, ama bunu kullanmıyorum. RHEL5 makinede vncserver'ı sunucu olarak kullanıyorum.
Jared Brown

Öyleyse asıl sorum şu: vncserver'ı GLX komutları göndermeyecek, ekran tamponundan UltraVNC görüntüleyiciye sadece sıkıştırılmış bir ekran gönderecek şekilde nasıl yapılandırabilirim?
Jared Brown
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.