← BlogCo-simulation & Rendering· 3/4

헤드리스 UE를 브라우저로 보고 조종하다 — Pixel Streaming 3기둥

GPU 서버의 언리얼 화면을 브라우저에서 보고 마우스·키보드로 조종하는 Pixel Streaming의 3가지 기둥 — 헤드리스 렌더, WebRTC 스트리밍, 실시간 양방향 상호작용.

약 2분
Unreal-Enginepixel-streamingWebRTCheadlessinteraction

헤드리스 UE를 브라우저로 보고 조종하다

군사 시뮬레이터를 고객에게 보여줄 때, "우리 서버 와서 보세요"는 안 됩니다. 브라우저만 열면 원격 GPU 서버의 언리얼 화면이 뜨고, 마우스로 시점을 돌리고 키보드로 조종까지 되어야 합니다. 이걸 가능케 하는 게 Pixel Streaming입니다. 세 기둥으로 이루어집니다.

세 기둥

도식 렌더링 중…
  1. 헤드리스 렌더 — 서버의 UE는 화면 창 없이 렌더만 합니다(headless ≠ no-render). 그 픽셀을 NVENC 하드웨어 인코더가 영상으로 압축.
  2. WebRTC 스트리밍 — 압축된 영상을 WebRTC로 브라우저에 실시간 전송.
  3. 실시간 상호작용 — 브라우저의 마우스·키보드 입력이 거꾸로 서버 UE로 전달돼, 진짜 조종이 됩니다.

영상은 내려가고(server→browser), 입력은 올라가는(browser→server) 양방향이 핵심입니다 — 단순 영상 송출이 아니라 원격 조종입니다.

조합이 까다롭다

이 파이프라인은 구성 요소의 버전·맵·플러그인이 딱 맞아야 작동합니다.

💡 버전 정합이 절반 — Pixel Streaming은 플러그인 세대(구/신), 시그널링 서버 버전, 엔진 브랜치, 시작 맵, 실행 플래그가 서로 호환되는 조합일 때만 영상이 흐릅니다. 한 조각만 어긋나도 "연결은 되는데 화면이 까맣다"가 납니다. 검증된 조합을 찾으면 그걸 고정하는 게 안전합니다.

GPU 상시 가동의 함정

⚠️ -RenderOffScreen도 GPU를 문다 — 무인 상시 가동 금지 — 헤드리스로 띄워도 NVENC 인코딩이 GPU를 상당히 점유합니다. "데모용으로 그냥 띄워두자"며 nohup으로 방치하면 GPU가 계속 90%대로 물립니다. 반드시 최대 실행 시간 자동 종료(auto-stop) 같은 안전장치를 둬야 합니다 — 화면이 없다고 GPU가 노는 게 아닙니다.

왜 이게 제품의 일부인가

Pixel Streaming은 단순 데모 기술이 아닙니다. "어디서든 브라우저로 접속해 시뮬을 보고 조종한다"는 건, 외부 고객이 직접 쓰는 제품의 전달 방식 그 자체입니다. 무거운 GPU·엔진은 서버에 두고, 사용자는 가벼운 브라우저만 — 이게 SaaS형 시뮬레이션의 전달 모델입니다.

한 줄 정리

📌 Pixel Streaming은 헤드리스 렌더 + WebRTC 스트리밍 + 실시간 양방향 입력 세 기둥으로, 원격 GPU의 UE 화면을 브라우저에서 보고 조종하게 한다. 버전 정합이 작동의 절반이고, NVENC가 GPU를 물기에 무인 상시 가동엔 자동 종료가 필수다. 이건 데모가 아니라 SaaS형 전달 모델이다.