SSH를 통해 OpenGL 2.1+ 애플리케이션을 실행하려고 합니다.
[내 컴퓨터] --- SSH 연결 --- [원격 컴퓨터] (응용 프로그램)
나는 이 응용 프로그램을 실행하기 위해 X 전달을 사용하며 이를 염두에 두고 이 응용 프로그램이 3D 그래픽을 수행하는 몇 가지 방법이 있다고 생각합니다.
- LIBGL_ALWAYS_INDIRECT를 사용하면 내 컴퓨터의 그래픽 하드웨어를 사용할 수 있습니다. 에 따르면이 게시물이는 일반적으로 OpenGL 버전 1.4로 제한됩니다.
- 원격 시스템에서 Mesa 소프트웨어 렌더링을 사용합니다. 이는 더 높은 버전의 OpenGL을 지원하지만 CPU를 사용합니다.
그러나 내 경우에는 원격 컴퓨터에 괜찮은 그래픽 카드가 있습니다. 그래서보다는소프트웨어렌더링, 할 수 있을지 궁금하네요하드웨어대신 원격으로 렌더링하세요.
또한 내 컴퓨터의 그래픽 카드를 사용하는 다른 방법이 있다면 그것도 좋을 것입니다.
답변1
선택은 반드시 간접 렌더링과 소프트웨어 렌더링 사이에서 이루어지는 것이 아니라, 보다 정확하게는 직접 렌더링과 간접 렌더링 사이에서 이루어집니다. 직접 렌더링은 X 클라이언트(원격 컴퓨터)에서 수행된 다음 렌더링 결과가 표시를 위해 X 서버로 전송됩니다. 간접 렌더링은 GL 명령을 X 서버로 전송하며, X 서버에서 해당 명령은 서버의 하드웨어를 사용하여 렌더링됩니다. 원격 시스템에서 3D 하드웨어를 사용하려면 직접 렌더링을 사용해야 합니다(그리고 렌더링된 래스터 이미지를 네트워크를 통해 전송하는 오버헤드도 허용해야 합니다).
애플리케이션이 OpenGL 1.4와 함께 작동할 수 없는 경우 직접 렌더링이 유일한 옵션입니다.
답변2
나는 패치된 OpenGL 드라이버를 실행하기 위해 SSH 원격 설정을 사용했습니다. 그러나 여기에는 렌더링을 위해 원격 X 서버를 하이재킹하는 것과 같은 일부 해킹이 포함되었습니다(원격 시스템에 로그인하고 ssh에 로그인한 후 DISPLAY를 :0으로 설정). 귀하의 경우 오프스크린 xserver를 분리하는 것이 더 합리적입니다. 오프스크린 모드에서 GPU 드라이버가 로드된 상태에서 원격으로 xserver를 시작할 수 있는지 기억이 나지 않습니다. VirtualGL 프로젝트는 당신이 찾고 있는 것을 정확하게 지원한다고 약속하는 것 같습니다. 나는 그것을 시도한 적이 없지만 웹 사이트가 유망해 보입니다.
http://www.virtualgl.org/About/소개
다른 대안은 vnc와 xdmcp입니다. 이를 통해 완전한 원격 데스크톱 환경에 액세스할 수 있습니다.