원격 연결을 통해 3D를 효율적으로 사용하는 방법은 무엇입니까?


12

하나의 약한 PC (클라이언트)가 있지만 허용 가능한 3D 성능과 하나의 강력한 PC (서버)가 있으며 OpenGL을 사용하여 응용 프로그램을 두 번, 즉 로컬 및 원격으로 한 번 실행할 수 있어야합니다. 현재 ssh -X는 클라이언트의 콘솔 출력 상태에 소프트웨어 렌더링이 사용되며 초당 3 프레임 (fps) 만 얻습니다. 실제로 ssh의 암호화는 LAN에 있기 때문에 필요하지 않지만 원격 응용 프로그램에 대해 이미 알고 있습니다 ...

그렇다면 어떻게 클라이언트 성능을 향상시킬 수 있습니까? 내 아이디어는

  • 하드웨어 가속을 사용하지만 서버 또는 클라이언트는 어떻게 사용합니까?
  • ssh와 다른 것을 사용하십시오

풀 해상도에서 정교한 압축이 없으면 100 Mbit / s LAN은 더 많은 fps를 만들지 않지만 ca의 윈도우 응용 프로그램입니다. 800x450이므로 이론적으로 압축되지 않은 그래픽 데이터를 사용하여 최대 12fps (24 비트 / 픽셀)가 가능해야합니다. 그리고 클라이언트 자신의 GPU 또는 스마트 압축을 사용하여 더 나은 것이 가능할 수도 있습니다.

-

편집 내가 원하는 것은 기본적으로 onlivegaikai가 제공 하는 로컬 버전입니다 . Linux에 대해 이와 같은 것이 있습니까 (가능하면 무료입니까)?

-

edit2 VirtualGL은 최고의 솔루션처럼 보이지만 (현재는 작동하지 않지만) 클라이언트에서 하드웨어 렌더링을 수행 할 수 있는지 궁금합니다.



PC가 서로 옆에 있기 때문에 후속 조치를 수행하고 두 명의 사용자가 한 대의 PC를 사용하지 않는 이유가 궁금합니다. 듀얼 모니터를 통해 두 명의 사용자가 동시에 한 대의 PC를 사용할 수 있습니까?
Tobias Kienzler

답변:


7

TurboVNC 와 함께 VirtualGL을 확인하여 100fps 에서 20fps @ 1280x1024를 제공해야합니다 ( wikipedia 참조 ).

일부 응용 프로그램에서는 작동하지 않을 수 있으며 OpenGL 사용 방법에 따라 다릅니다.


내가 찾던 것과 똑같은 소리 +1, 감사합니다! (나는 (희망
스럽게


pbuffer를 지원하는 새로운 PC가 있지만 불행히도 vglrun segfaults가 있습니다. 클라이언트가 32 비트 인 동안 서버가 64 비트로 실행되기 때문일 수 있습니까?
Tobias Kienzler

(답이 정확하고 segfault가 별도의 질문
이므로 승인 됨

2

이것은 오래된 질문이지만 여전히 관련이 있습니다. 로컬 하드웨어에서 원격 애플리케이션의 X11 3D 렌더링을 구성하고 문제를 해결하는 방법에 대한 단계별 매뉴얼이 있습니다. 원격 x11 ssh 연결을 통한 OpenGL 하드웨어 가속

Chromium BSU 게임이이 기사에서 예로 사용되었습니다. SSH 연결을 통한 기본 소프트웨어 렌더링으로 5-8 FPS, 간접 하드웨어 렌더링으로 30 FPS 및 암호화되지 않은 TCP X11 연결로 30 FPS 이상에서 실행됩니다. 일부 응용 프로그램에서만 작동합니다.

기사의 간략한 요약

기본 X11 서버 구성에서는 간접 렌더링 및 TCP 연결이 비활성화되어 있습니다. +iglx and -listen tcp매개 변수를 활성화합니다. LIBGL_ALWAYS_INDIRECT=1X11 클라이언트에서 간접 렌더링을 강제하는 변수 도 있습니다 .


답변 주셔서 감사합니다. 크게 (방금 상태를 예 경우에도 "를 사용하여 링크 이제까지 죽은 자 간다 경우에 여기에 링크 된 블로그 게시물의 요점을주의하는 감사 lightdmiglx같은"). 나는 현재 이것을 더 이상 필요로하지 않지만 다음에 시도 할 것이다;) 다른 누군가도 당신의 발견이 도움이된다고 생각할 것이다.
Tobias Kienzler

좋은 지적. 기사의 주요 내용을 추가했습니다.
evpo

0

두 대의 데스크탑 PC가있는 경우에도 마찬가지입니다. 그러나 집 어디에서나 사용할 수있는 오래된 WiFi 랩톱 (예 : Ubuntu 10.04를 클라이언트로 사용하는 Ti5600 및 예비 Wi-Fi 라우터가있는 GTX 보드가있는 데스크탑 PC를 사용하는 경우 원격 OpenGL 클라이언트를 사용하는 것이 좋습니다.

문제는 원격 (서버 측) OpenGL 컨텍스트를 얻는 것입니다. 클라이언트에서 ssh -X를 실행할 수 있습니다. 그러나 원격 시스템에서 glxinfo를 실행하면 로컬 클라이언트가 생겨 시작 위치로 돌아갑니다. DISPLAY 환경 변수를 해당 원격 호스트로 설정할 수 있으며 해당 화면을 보조 모니터로 사용할 수 있지만 여전히 도움이되지 않습니다.

다른 솔루션은 원격 GLX 컨텍스트를 사용할 수 있도록 데스크탑 애플리케이션을 작성하는 것입니다.

http://arrayfire.com/remote-off-screen-rendering-with-opengl/


감사합니다. X 프로토콜이 3D를 전송하는 대안이 있습니까? 죄송합니다. 서버와 클라이언트를 따옴표로 묶어야합니다. 강력하고 약한 PC에 대해서는 더 짧은 단어만을 의미했습니다. 두 PC는 모두 데스크탑 PC 인 것처럼 동시에 모든 CPU 작동을 가진 프론트 엔드로 사용해야합니다. 더 나은 PC가 수행하는 RAM 액세스. 약한 PC에는 응용 프로그램 자체를 실행하기에 충분한 CPU 전력과 RAM이 없습니다
Tobias Kienzler

내가 아는 것은 아닙니다. 당신이 생각하는 3D의 종류에는 많은 대역폭이 필요합니다.
Keith

그것은 사실이다 : (OTOH, onlive , gaikai 및 다른 사람들은 이것이 인터넷을 통한 게임에서도 가능하다고 주장합니다 ...
Tobias Kienzler

좋아, 나는 보았다. 나는 그들이 그렇게 프레임을 전송한다고 생각하지 않습니다. 기존의 온라인 게임과 마찬가지로 로컬에서 다운로드하여 실행하고 제어 및 업데이트 정보 만 송수신합니다. 그렇더라도 압축률이 높으면 해상도가 낮아야합니다.
Keith

내가 이해하는 방식으로, 그들은 원격으로 게임을 실행하고 키보드 및 마우스 이벤트를 수신하면서 비디오의 HD 스트림을 전송합니다. 그러나 물론 압축없이 인터넷을 통해 30fps를 HD로 전송할 수 없었습니다 ...
Tobias Kienzler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.