나는 약한 PC(클라이언트)를 갖고 있지만 허용 가능한 3D 성능을 갖고 있으며, OpenGL을 사용하여 응용 프로그램을 두 번, 즉 한 번은 로컬로, 한 번은 원격으로 클라이언트용으로 실행할 수 있는 강력한 PC(서버)를 가지고 있습니다. 현재 나는 ssh -X
이것에 관심이 있지만 클라이언트의 콘솔 출력에는 소프트웨어 렌더링이 사용되고 초당 3프레임(fps)만 얻는 것으로 나타납니다. 사실 ssh 암호화는 LAN상에 있기 때문에 필요없지만, 이건 제가 이미 알고 있는 원격 애플리케이션인데...
그렇다면 클라이언트 성능을 향상시키는 방법은 무엇입니까? 내 의견은
- 하드웨어 가속을 사용하지만 서버 또는 클라이언트 가속은 어떻습니까?
- SSH와 다른 것을 사용하십시오
100Mbit/s LAN은 복잡한 압축 없이 전체 해상도에서 더 많은 fps를 생성하지 못한다는 것을 알고 있지만 이는 창 응용 프로그램 ca입니다. 800x450이므로 압축되지 않은 그래픽 데이터를 사용하면 이론적으로 12fps(24비트/픽셀)가 가능합니다. 클라이언트 자체 GPU나 일종의 스마트 압축을 사용하면 더 나은 결과를 얻을 수도 있습니다.
--
편집하다내가 원했던 것은 기본적으로 로컬 버전이었습니다.라이브 스트리밍그리고가이케할인. Linux에도 비슷한 것이 있나요(아마도 무료인가요)?
--
편집 2VirtualGL이 가장 좋은 솔루션인 것 같지만(현재는 나에게 적합하지 않음) 클라이언트에서도 하드웨어 렌더링을 수행할 수 있는지 알고 싶습니다.
답변1
답변2
이것은 오래된 질문이지만 여전히 관련이 있습니다. 로컬 하드웨어의 원격 애플리케이션에 대한 X11 3D 렌더링을 구성하고 문제를 해결하는 방법에 대한 단계별 매뉴얼이 있습니다.원격 x11 SSH 연결을 통한 OpenGL 하드웨어 가속
이 문서에서는 Chromium BSU 게임을 예로 들어 설명합니다. 5-8FPS(SSH 연결을 통한 기본 소프트웨어 렌더링), 30FPS(간접 하드웨어 렌더링 사용) 및 >30FPS(암호화되지 않은 TCP X11 연결 사용)에서 실행됩니다. 특정 앱에서만 작동합니다.
기사의 간략한 요약
기본 X11 서버 구성에서는 간접 렌더링 및 TCP 연결이 비활성화되어 있습니다. +iglx and -listen tcp
매개변수가 이를 활성화합니다. LIBGL_ALWAYS_INDIRECT=1
X11 클라이언트에서 간접 렌더링을 강제하는 변수 도 있습니다 .
답변3
두 대의 데스크톱 컴퓨터가 있는 경우에 해당될 수 있습니다. 그러나 집안 어디에서나 사용할 수 있는 오래된 WiFi 노트북(예: 클라이언트로 Ubuntu 10.04가 설치된 Ti5600, GTX 보드와 예비 Wi-Fi 라우터가 있는 데스크탑 PC)이 있는 경우 원격 OpenGL 클라이언트 좋은 생각인 것 같습니다.
문제는 원격(서버측) OpenGL 컨텍스트를 가져오는 것입니다. 클라이언트에서 ssh -X를 실행할 수 있습니다. 그러나 원격 시스템에서 glxinfo를 실행하면 로컬 클라이언트가 생성되어 시작한 곳으로 돌아갈 수 있습니다. DISPLAY 환경 변수를 해당 원격 호스트로 설정하고 해당 화면을 두 번째 모니터로 사용할 수 있지만 여전히 도움이 되지 않습니다.
또 다른 해결책은 원격 GLX 컨텍스트를 사용할 수 있도록 데스크톱 애플리케이션을 작성하는 것입니다.
http://arrayfire.com/remote-off-screen-rendering-with-opengl/