고해상도 렌더 파이프라인의 가상 현실
고해상도 렌더 파이프라인(HDRP)에서 가상 현실(VR)을 사용하려면 Unity 프로젝트에서 VR을 활성화해야 합니다. 이렇게 하려면 렌더 파이프라인 마법사에서 VR 탭을 참조하십시오.
Unity를 사용한 XR 개발에 관한 자세한 내용은 Unity XR 문서를 참조하십시오.
권장 설정
HDRP는 싱글 패스 인스턴스화 모드를 완전히 지원하도록 설계되었습니다. 이 모드는 모든 플랫폼에서 최고의 성능을 제공합니다. HDRP는 또한 멀티 패스를 지원하지만 CPU에서 속도가 느리고 자동 노출과 같은 일부 기능에 문제가 생길 수 있습니다. 특정 기능에 문제가 발생한 경우 해당 기능을 프로젝트의 HDRP 에셋에서 비활성화할 수 있습니다.
더 많은 팁을 알아보려면 유나이트 코펜하겐(2019년 10월)에서 있었던 프레젠테이션(Maximizing visual fidelity in VR: HDRP support)을 참조할 수 있습니다.
지원되는 플랫폼 및 기기
- DX11을 사용하는 PC:
- Oculus Rift & Rift S (Oculus XR 플러그인, Windows 10, DirectX 11)
- Windows Mixed Reality (Windows XR 플러그인, Windows 10, DirectX 11)
- PS4:
- PlayStationVR
- Open VR*
참고: Valve는 현재 2019.3 이상에 사용할 OpenVR Unity XR 플러그인을 개발하고 있습니다. 자세한 내용은 Unity 블로그의 Unity XR 플랫폼 업데이트와 Unity 매뉴얼의 XR 플러그인 아키텍처를 참조하십시오. XR 플러그인 아키텍처는 OpenVR 데스크톱 패키지로 연결되며 추가 정보와 권장 사항이 있습니다.
해상도 제어
HDRP에서 렌더 타겟의 해상도를 제어하는 데 사용할 수 있는 여러 방법이 있지만 HDRP는 빌트인 렌더 파이프라인을 사용하여 일반 Unity에서 사용할 수 있는 모든 방법을 지원하지는 않습니다.XRSettings.renderViewportScale은 HDRP에 영향을 주지 않으며 이를 사용하는 경우 경고가 표시됩니다. 대신 다음 방법 중 하나를 사용해야 합니다.
- 다이내믹 해상도: 다이내믹 해상도 시스템을 사용하여 런타임 시 해상도를 변경할 수 있습니다. 런타임 시 해상도를 변경하고자 할 때 사용하기에 가장 좋은 방법입니다.
- 눈 텍스처: XRSettings.eyeTextureResolutionScale을 변경하여 기기의 백 버퍼 해상도를 설정할 수 있습니다. 이는 모든 렌더 타겟을 다시 할당하므로 리소스를 많이 소모하는 작업입니다.
SteamVR은 기본 150% 슈퍼샘플링 값을 적용합니다. SteamVR 설정에서 이 값을 변경할 수 있습니다.
시작 후 VR 싱글 패스 활성화
향후 버전에서 해결될 몇몇 기술적 제한 사항으로 인해 앱이 직접 VR 모드에서 부트하지 않는 경우 스크립트에 다음 코드를 넣어야 합니다.
private void Awake()
{
UnityEngine.Rendering.TextureXR.maxViews = 2;
}
C# 정의
다음의 정의를 사용하여 코드를 스크립트에 포함하거나 스크립트에서 제외할 수 있습니다.
- ENABLE_VR: 엔진의 C++ 측에서는 플랫폼이 VR을 지원하는지 여부를 나타내기 위해 이 정의를 설정합니다.
- ENABLE_VR_MODULE: Unity는 프로젝트에 빌트인 VR 모듈 com.unity.modules.vr이 포함되어 있는 경우 이 정의를 설정합니다.
- ENABLE_XR_MODULE: Unity는 프로젝트에 빌트인 XR 모듈 com.unity.modules.xr이 포함되어 있는 경우 이 정의를 설정합니다.