유니티 가상현실(VR) 해상도 최적화(render scale, foveated rendering, eye texture resolution)
렌더 스케일 render scale
렌더 타겟 해상도를 조절합니다(Unity 엔진 내부의 렌더 타겟 배율 스케일링) 성능상의 이유로 낮은 해상도로 렌더링하거나 품질 향상을 위해 렌더링을 업스케일링하고 싶을 때 사용할수있습니다. Render Scale은 카메라가 실제 렌더링하는 내부 해상도를 결정합니다(이 속성은 게임 렌더링만 확대 및 축소하며 UI 렌더링은 장치의 네이티브 해상도로 유지됨)
렌더스케일을 설정하려면 URP 에셋 Quality의 Render Scale을 확인합니다.
render scale 0.8 (유니티 URP 모바일 기본값)
render scale 1.0 = 장치 기본 해상도
render scale - 1.4 로 설정하면 내부적으로 약 1.4배 높은 해상도로 렌더링하고 후처리로 축소 표시 (선명도가 증가하지만 성능부하가 증가, 프레임드랍 발생하는 경우 더 낮은 값으로 설정)

예를들어
기기 해상도 = 2660x1440
Render Scale = 0.8
실제 렌더 타겟 = 2128x1152 (80% 해상도)
Upscaling Filter- Render Scale 값이 1.0 미만인 경우 Unity가 업스케일링을 수행할 때 사용할 이미지 필터를 선택합니다
https://docs.unity3d.com/kr/Packages/com.unity.render-pipelines.universal@14.0/manual/universalrp-asset.html

VR프로젝트에서 렌더 스케일(render scale)
VR에서 render scale 기본값 0.8 의 해상도가 낮은경우 1.2 ~ 1.4로 올리면 확실히 선명해짐
일반적으로 렌더 스케일 수치를 높일수록 shimmering, zittering, 엘리어싱 등 문제해결
1.0 - 기본, 1.0x, 1832×1920
1.25 - 1.56x, 2290×2400 그래픽 품질 향상, 선명한 텍스트
1.5, 2.25x, 2748×2880 매우 선명하지만 프레임 드랍 가능
메타퀘스트의 렌더 스케일(render scale)
https://developers.meta.com/horizon/documentation/unity/os-render-scale/
https://developers.meta.com/horizon/documentation/unity/po-perf-opt-mobile
모든 Meta Quest 헤드셋의 기본 해상도(렌더링 스케일 1.0에 해당)는 실제 화면 해상도보다 낮습니다. 평균적으로 렌더 스케일 1.2는 실제 화면 해상도에 해당. 즉, 앱의 렌더 스케일을 최대 1.2까지 높이면 화면이 모든 추가 디테일을 물리적으로 표현할 수 있으므로 이미지 선명도가 크게 향상됩니다.
유니티 게임 해상도 스케일링 render scale 1보다 높은 값으로 설정 의미
Render Scale은 Rasterization(래스터화) 단계의 렌더 타겟 해상도를 조정.
내부적으로 더 많은 픽셀을 계산 모델의 픽셀화, 텍스처 샘플링, 에지 정렬 등을 더 세밀하게 계산
Render Scale은 렌더링 품질에 직접 영향을 주는 샘플링 해상도로 이미 렌더링이 끝난 2D 이미지(출력 이미지)를 리샘플링하는것과 다름(단순히 디스플레이에 확대 및 축소 출력만 하는 것은 이미 렌더링이 끝난 2D 이미지를 리샘플링하는 것)
foveated rendering
사용자의 시야 중심부(fovea) 는 고해상도로 주변부는 낮은 해상도로 렌더링하는 기술입니다(중심 시야 고해상도, 주변 저해상도)
GPU 부하를 줄이면서도 체감 화질을 유지할 수 있습니다.
Foveated rendering feature 활성화하면 적정해상도에 성능 최적화 가능
대부분 VR(Meta Quest, Pico 등) 프로젝트에서 성능 최적화를 위해 사용할수있습니다.
https://docs.unity3d.com/Packages/com.unity.xr.openxr@1.15/manual/features/foveatedrendering.html
OpenXR 프로젝트에서 Foveated rendering 활성화하기
프로젝트 설정의 XR Plug-in Management에서 OpenXR 플러그인 제공자를 활성화합니다.

OpenXR의 OpenXR Feature 에서 Foveated rendering 에 체크합니다.

Eye Texture Resolution Scale
OpenXR XR 런타임(OpenXR, Oculus 등)의 Eye Buffer 자체 크기를 조절합니다.
XR Eye Buffer 해상도 배율
기타
MSAA
픽셀 단위 안티앨리어싱
Dynamic Resolution
https://docs.unity3d.com/kr/2018.4/Manual/DynamicResolution.html