https://uploadvr.com/quest-2-application-spacewarp



Application SpaceWarp (ASW)는 개발자에 의해서 켜고 끌 수 있습니다.

다음주 부터 사용 가능하게 되고, 기본적으로는 앱의 프레임 레이트를 절반으로 줄이고 나머지는 합성해서 사용 하는 것입니다.


게임 엔진이 제공해주는 뎁스 버퍼 (Z buffer라고도 부릅니다) 를 이용해서 실제로 렌더링 된 프레임을 사용하여 다음 프레임을 예측해서 만들어내는 것입니다.


그 결과 퀘스트 1에서의 ASW는 36프레임으로 렌더링을 할 수 있고

퀘스트 2의 개발자들은 36FPS, 45FPS, 60FPS 중에서 하나를 정할 수 있습니다.


Meta의 발언에서는 오버헤드를 고려할 때ASW는 완전하게 모든 프레임을 렌더링 하는 것과 비교하면 대략 70%정도 더 많은 성능을 제공 할 수 있다고 합니다. 그것은 하드웨어의 세대가 바뀔때나 볼 수 있을 법한 수치입니다.

그 결과 훨씬 더 좋은 그래픽을 가져오거나 스탠드 얼론 기기에서는 가능하지 못했던 새로운 게임이 나올 수도 있다고 볼 수 있습니다.







ASW와 같은 프레임 보간이라고 볼 수 있는 기술들에는 큰 두가지 부작용이 있습니다.


결국 72개의 프레임을 렌더링하는 것이 아니라 그 절반인 36개의 프레임을 렌더링하기 때문에 레이턴시가 2배가 되고 예측된 프레임을 보여주기 때문에 완벽한 프레임이 아니라는 것입니다.


하지만 Meta는 그에대한 해결책이 있다고 말했습니다.


PC 기반의 오큘러스 리프트의 SpaceWarp가 모션 벡터를 직접 예측했다면, 퀘스트의 SpaceWarp는 게임 엔진이 모션 벡터를 제공하게 된다고 밝혔습니다.

이것은 전자에 비하면 훨씬 양질의 데이터 인풋이라고 말했습니다. 그에 따라 Meta는 예측 된 프레임의 잘못 된 점이 거의 보이지 않는다고 밝혔습니다.


레이턴시를 해결하기 위해서 Meta는 Positional TimeWarp 또한 공개합니다. SpaceWarp가 개발자의 선택이라면 TimeWarp의 경우 항시 시스템 레벨에서 활성화 되어 있습니다. Quest가 발매되고 현재까지의 TimeWarp는 완성된 프레임을 렌더링을 시작한 이후 머리가 회전되어 있는 각도로 꼬아서 회전 대기 시간을 단축합니다.





TimeWarp에 대한 설명 첨부.

==============================================================================================


(현재의 TimeWarp라고 함은, Asynchronous TimeWarp (ATW)를 말하는 것으로 보입니다.)



이것은 일반적인 게임 프레임 렌더링을 보여주는 그림입니다.


순서는 다음과 같습니다.


1. 소프트웨어가 머리 회전 각도 상태를 요청

2. CPU가 각각의 눈에 대한 화면을 처리

3. GPU가 렌더링

4. 오큘러스 컴포지터가 화면을 왜곡하고 헤드셋에 표시합니다.



만약에 GPU 렌더링이 시간내에 완성되지 못하면 이것들이 모두 흐트러집니다.




이것을 컴포지터가 일단 렌더링이 완전히 끝나지 않았더라도 회전을 시키고 화면을 보여줍니다. 사용자가 프레임이 떨어진다는건 인식하지만 경험상으로는 회전된 이미지를 보여주기 때문에 비교적 안정적입니다.


==============================================================================================



Positional TimeWarp는 ASW에 제공된 것과 동일한 뎁스 버퍼를 사용하여 각 프레임을 머리가 이동한 방향으로 재투사하여 변환 지연 시간도 단축합니다.


Meta는 Positional TimeWarp가 Application SpaceWarp를 사용하는 현재 Quest에 빌드된 앱보다도 헤드 대기 시간이 더 짧다고 주장했습니다.


Meta는 Application SpaceWarp와 Positional TimeWarp가 11월 8일에 출시될 다음 Oculus SDK 릴리스에 포함될 것이라고 밝혔습니다. 어플리케이션이 OpenXR 및 Vulkan API를 모두 사용해야만 두개의 신 기술을 모두 적용 할 수 있습니다. 기존 Oculus API와 OpenGL은 지원되지 않습니다. 또한 Unity 앱은 기존 내장 파이프라인도 지원되지 않으므로 URP와 같은 스크립트 가능 렌더 파이프라인을 사용해야 합니다.






===== 사견 =====

사실 말이 사용가능이지, 해당 기능을 사용하기 위한 제한사항들이 있기때문에 전반적으로 사용되기 위해서는 기간이 필요할 겁니다.

개인적으로는 프레임 보간이나 업스케일링같은걸 별로 좋아하지는 않아서 사용자가 켜고 끌 수 있었으면 좋겠다는 생각이 드네요.