PCVR

개요

독립형 기기의 경우 모든 렌더링과 처리가 헤드셋 자체에서 이루어집니다. 비독립형 장치( PCVR)의 경우 모든 렌더링과 대부분의 관련 처리는 물리적 케이블을 통해 또는 무선으로 헤드셋에 연결된 컴퓨터에서 이루어집니다.

개발자의 경우 PCVR 기반 환경에서 작업하는 것이 독립형 VR 기기에서 지속적으로 배포하고 테스트하는 것보다 더 간단하고 생산적일 수 있습니다. 개발, 테스트, 디버깅, 프로파일링 방법과 툴이 일반 데스크톱 Windows 또는 Linux 애플리케이션과 거의 동일하며, VR 애플리케이션이 데스크톱에서 화면에 아무것도 렌더링하지 않더라도 여전히 동일하기 때문입니다.

하지만 최종 사용자의 경우 PCVR을 설정하고 실행하는 것이 단순히 독립형 디바이스에 애플리케이션을 설치하는 것보다 더 복잡할 수 있습니다.

두 가지 접근 방식이 모두 가능한 기기(예: 메타 퀘스트 3)의 경우 두 가지를 결합하는 것이 생산성에 유용할 수 있습니다. 개발 중에는 PCVR(또는 메타 XR 시뮬레이터)을 사용하되, AR 기능 및 최종 사용자에게 전달할 때는 독립형(Android) 빌드에 집중하세요.

참고: 동일한 Qt 애플리케이션을 Android에서 독립 실행형 모드로 실행하는 것과 Windows에서 PCVR 모드로 실행하는 것은 완전히 다른 CPU, GPU 및 소프트웨어 스택에서 실행하는 것이므로 성능 측면이 크게 다를 수 있습니다. 성능 프로파일링은 항상 적절한 환경에서 네이티브로 실행하고 플랫폼별 툴을 사용하여 프로파일링하여 결론을 도출해야 합니다.

입력의 경우, 헤드셋 컨트롤러의 데이터는 헤드셋에서 직접 실행되는 애플리케이션과 마찬가지로 OpenXR API를 통해 PC에서 실행되는 애플리케이션에 전달됩니다. 또한 애플리케이션은 추가 입력 방법을 위해 PC에 연결된 주변기기에 여전히 의존할 수 있지만, 키보드나 마우스 입력에 의존하는 것은 여러 가지 잠재적인 함정이 있으므로 신중하게 고려해야 합니다.

추가 고려 사항

PCVR의 경우 품질과 성능은 호스트 PC의 성능에 크게 좌우되지만 스트리밍 기술 및 무선 네트워크 대역폭과 같은 관련 요인도 결과에 영향을 미칠 수 있습니다. 또한 특히 무선 스트리밍을 사용하는 경우 시각적 환경이 실행마다, 그리고 환경마다 다를 수 있습니다.

일부 기능은 독립형 디바이스, 특히 AR 관련 디바이스에 비해 사용할 수 없거나 제한될 수 있습니다. 예를 들어 패스스루를 생각해 보세요. 독립형 모드에서는 애플리케이션과 기본 소프트웨어 스택이 헤드셋의 카메라 피드에 쉽게 액세스할 수 있습니다. 원격 컴퓨터에서 스트리밍하는 경우 패스스루는 비용이 많이 들고 PC로 많은 양의 데이터를 추가로 전송해야 할 수 있습니다. 따라서 PCVR 시스템에서 AR 및 공간 관련 기능을 사용할 수 없는 경우가 종종 있습니다.

PCVR 에코시스템에는 사용하는 기기에 따라 다양한 가용성을 제공하는 OpenXR 구현과 유선 또는 무선 스트리밍을 제공하는 여러 솔루션이 있습니다. 일부 런타임은 특정 스트리밍 솔루션에 종속되어 있으며, 각 솔루션은 서로 다른 기능을 제공할 수 있습니다.

3D API에 대한 지원도 다양합니다. 일반적으로 Direct 3D 11, Direct 3D 12 및 벌칸은 Windows의 모든 OpenXR 구현에서 지원될 것으로 예상할 수 있습니다. OpenGL 지원은 드물며 Qt에서 PCVR과 함께 테스트되지 않았습니다.

참고: 멀티뷰 렌더링과 같은 중요한 기능은 해당 API에서 지원되지 않으므로 Direct 3D 11을 사용하는 것은 권장하지 않습니다. 대신 Direct 3D 12를 권장합니다.

사용되는 3D API를 변경하는 방법은 Qt Quick 또는 Qt Quick 3D 애플리케이션과 다르지 않습니다. 환경 변수 QSG_RHI_BACKEND (예: d3d12)를 설정하거나 QQuickWindow::setGraphicsApi()를 호출합니다.

OpenXR 구현 선택

표준 크로노스 OpenXR 로더를 사용하면 로드되는 구현을 변경할 수 있는 여러 가지 방법이 있습니다:

  • 환경 변수 설정 XR_RUNTIME_JSON. 예를 들어 XR_RUNTIME_JSON=c:\MetaXRSimulator\meta_openxr_simulator.json 을 설정하면 이후 실행되는 Qt Quick 3D Xr 애플리케이션이 메타 XR 시뮬레이터의 OpenXR 구현을 선택하도록 합니다.
  • 또는 레지스트리를 통해 설정을 영구적으로 설정할 수도 있습니다. (Windows의 경우) 아래에서 ActiveRuntime 값을 확인/변경합니다. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenXR\1
  • 일부 스트리밍 솔루션은 설정에 특정 OpenXR 구현을 강제로 사용하도록 하는 옵션이 있을 수 있습니다.

메타 퀘스트 3용 무선 스트리밍 솔루션

테스트된 구성 표

메타 퀘스트 3

  • 유선 연결(USB-C), Oculus OpenXR 런타임
  • 유선 연결(USB-C), SteamVR OpenXR 런타임
  • AirLink를 통한 무선 연결, Oculus OpenXR 런타임
  • AirLink를 통한 무선 연결, SteamVR OpenXR 런타임
  • SteamLink를 통한 무선 연결, SteamVR OpenXR 런타임
  • 가상 데스크톱을 통한 무선 연결, SteamVR OpenXR 런타임
  • 가상 데스크톱을 통한 무선 연결, VDXR OpenXR 런타임

특별

  • 메타 XR 시뮬레이터 (Windows 전용, macOS는 당분간 Qt에서 테스트되지 않음)

추가 자료

이 페이지에서는 PCVR과 관련된 모든 세부 사항, 구성 문제 및 가능성을 자세히 다룰 수는 없습니다. 스트리밍 및 OpenXR 구현에 대한 좋은 요약과 소개를 보려면 VDXR 위키를 살펴보는 것이 좋습니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.