원격 서버에서 Blender 3.6.5를 실행하기 위해 x-forwarding을 사용하려고 합니다. 서버에는 기본 x11 및 mesa 패키지와 freetype 패키지가 설치되어 있습니다.
user@server:~$ sudo apt install -y
bzip2 libfreetype6 libgl1-mesa-dev \
libglu1-mesa \
fontconfig \
libxi6 libxrender1 libglib2.0-0 x11-utils
SSH 클라이언트를 사용하여 서버에 연결하고 x11 전달 옵션을 정의합니다.
user@client$ ssh -X -v user@server
나는 달리려고 노력한다GLX 기어잘 작동하지만 블렌더를 실행하면 이해할 수 없는 오류가 발생하면서 충돌이 발생합니다.
user@server:~/blender-3.6.5-linux-x64$ ./blender
0debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384
debug1: client_request_x11: request from 127.0.0.1 60744
debug1: channel 1: new [x11]
debug1: confirm x11
Failed to open dir (No such file or directory): /run/user/7693/gvfs/
X Error of failed request: BadGC (invalid GC parameter)
Major opcode of failed request: 60 (X_FreeGC)
Resource id in failed request: 0x6e00025
Serial number of failed request: 218
Current serial number in output stream: 223
debug1: channel 1: FORCE input drain
Blender를 원격으로 실행할 때 고려해야 할 다른 사항이 있나요? (예: 글꼴 또는 특정 라이브러리)
답변1
Blender는 최신 X11 기능을 사용하고 glxgears가 작성될 당시 발명되지 않은 기능에 의존하기 때문에 glxgears가 작동하는 데 필요한 기능이 더 적다는 것은 놀라운 일이 아닙니다.
X11 호출 Blender가 시작하는 동안 수행하는 작업을 빠르게 추적하면 공유 메모리 확장을 사용한다는 것을 알 수 있습니다. 이는 텍스처 수정 및 모델에 표시하는 것과 같은 작업을 수행하는 프로그램에 적합합니다. 그러면 OpenGL 측에서도 비슷한 것을 사용한다고 확신하므로 모든 x11-mitshm 호출을 어떻게든 패치하고 SSH를 통해 투명하게 만들더라도 실패할 것입니다.
로컬에서 렌더링하려면 블렌더가 필요합니다(즉, 블렌더가 실제로 실행되는 원격 시스템에서). 그런 다음 렌더링된 비트맵을 로컬 컴퓨터로 전달할 수 있습니다. 나는 이것이 당신이 원하는 것이라고 생각합니다. 아마도 강력한 GPU와 CPU가 있는 시스템에서 컴퓨팅 성능이 거의 없이 실행되는 서버에 로그인하지 않을 것입니다. 그러나 정반대가 사실입니다! 아마도 너무 느리고 GPU가 없는 노트북에서 블렌더를 사용하려고 할 것입니다. 서버는 빠르고 GPU가 있습니다. 그렇죠? (그렇지 않으면 전체 노력이 의미가 없습니다. 로컬에서 블렌더를 실행하세요.)
전통적으로 표시된 그래픽의 VNC 화면 캡처가 이를 수행하는 방법이었습니다. 그러나 이것이 고해상도, 대기 시간이 긴 대형 델타 그래픽을 위한 방법인지는 확실하지 않습니다. 일반적으로 GPU 가속 X.org를 실행하려면 원격 서버에 연결된 물리적 화면이 필요하며 VNC 서버는 이를 화면 캡처, 인코딩 및 전송할 수 있지만 둘 다 바람직하지 않습니다.
저는 Google이 Stadia(그리고 모든 유료 고객 및 비즈니스 파트너)를 포기한 후 사람들이 헤드리스 서버용으로 구축하고 있는 앱 스트리밍 솔루션을 조사해 볼까 생각했습니다. 수십). 현재 서버 측의 Sunshine과 클라이언트 측의 Moonshine이 인기 있는 솔루션이라고 생각하지만 이에 대한 경험은 없습니다.