niedziela, 13 lutego 2011

VirtualGL+TurboVNC - grafika (gry:-) 3D na odległość

Problem
Chcemy uruchomić aplikację wymagającą sprzętowej akceleracji na komputerze jej nie posiadającym.

Rozwiązanie
Renderowanie z wykorzystaniem VirtualGL na zdalnym serwerze. Nie będę się rozpisywał o tym czym jest VirtualGL, jak go zainstalować i uruchomić. Napisano bardzo dobrą dokumentację. Może pracować samodzielnie lub wraz z TurboVNC.

Przykład
Dwa komputery połączone kawałkiem skrętki: serwer z akceleracją 3D (790GX) i dwurdzeniowym Athlonem II, klient tylko z akceleracją 2D (Via VN896) i jednordzeniowym Celeronem M. Oba napędzane przez Ubuntu 10.04. Aplikacje obciążają procesor i układ graficzny serwera, ale są wyświetlane na ekranie klienta.

Screeny
Amnesia The Dark Descent (gra)

Enemy Territory: Quake Wars Demo (gra)

ET: QW otwarte z wykorzystaniem przeglądarki (aplet Javy)

Obciążenia procesora serwera

Obciążenie procesora klienta


Problemy

  1. TurboVNC na spółkę z VirtualGL rozwiązuje tylko kwestie grafiki. Pozostaje problem dźwięku.
  2. TurboVNC pozamieniał mi całkowicie położenie klawiszy (układ klawiatury). Nie mam pojęcia dlaczego.
  3. Prędkość generowania grafiki była ~2 razy mniejsza niż przy bezpośrednim uruchomieniu gier. Co ciekawe procesory obu komputerów były obciążone w ok. 80% (być może sieć była wąskim gardłem). 
  4. Transfer sieciowy przy 1024x768 i 10-20 fps wynosił 2,5-4,5 MiB/s. 
Hardcore
Jest też ambitniejsze zastosowanie VirtualGL - programowa alternatywa dla SLI/Crossfire/Hydry

4 komentarze:

  1. Ciekawe :) Myślę, że przyszłość to wykupywanie usług.
    Końcowy użytkownik będzie musiał wyposażyć się w terminal, pewnie zintegrowany w monitorze, podłączony do sieci i zalogowany do usługi. W zależności do czego będziemy potrzebować komputer, tyle będziemy płacić co miesiąc. Jak za abonament TV, telefoniczny itp
    Ciągłym ulepszaniem komputerów nie będziemy się przejmować tylko usługodawca :)

    OdpowiedzUsuń
  2. Innymi słowy, to coś w stylu OnLive. Jaką masz kartę sieciową i ty połączenia?

    OdpowiedzUsuń
  3. To będzie miało sens jeśli ping przez net będzie w okolicach 10ms a transfery na poziome >5MiB/s w tej cenie co dzisiaj 1Mbit/s. Oprócz tego silne kompy musiałby być bardzo drogie, a tak naprawdę są dosyć tanie i to się raczej nie zmieni. Epoka mainframe dawano się skończyła, teraz próbuje się ludzi do tego pomysłu przekonać używając nowej nazwy: "chmura". ;)
    Póki co ma to sens w przypadku kiedy posiada się farmę serwerów i chce się jej pozbyć ale w innym przypadku nie ma to sensu. W sumie jak na to patrzę to tylko marketerzy firm związanych z chmurami się nimi zachwycają i sponsorowani "dziennikarze"...

    OdpowiedzUsuń
  4. Na "serwerze" Realtek RTL8111DL wbudowane w płytę. Na kliencie (notebook) sam nie wiem co:) W każdym razie pracuję jako 100Mbit i po drodze jest jeszcze switch (w routerze).

    W gruncie rzeczy takie rozwiązanie jest najbardziej sensowne w przypadku oprogramowania CAD/CAE, a nie gier. Bo tam jest potrzebna duża wydajność, ale tylko przez ułamek czasu pracy (np. coś się modeluje 2 h, a potem liczy MES-em przez 2 minuty).

    OdpowiedzUsuń