alvr-org / alvr-org/ALVR

Asynchronous Space Warp (ASW)

Offen
#311 9 Kommentare 5 Reaktionen 1 zugewiesene Person Beansprucht von @zmerp Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Rust
Sterne
7.9k
Forks
708
Ø Merge
3 T. 23 Std.
Gemergte PRs (30 T.)
11

Beschreibung

Asynchronous Space Warp is what the PC Oculus Runtime uses when the PC cannot keep up rendering at 90 fps, so it renders every other frame (45 fps) and the missing frames are interpolated from the most recent frame + a depth map of the rendered scene.
ALVR and other OpenVR drivers can implement that, since the depth map can be retrieved from [hDepthTexture](https://github.com/ValveSoftware/openvr/blob/master/headers/openvr_driver.h#L2735). The ASW algorithm must be reimplemented from scratch, it will take time to do that but it's not conceptually hard (it's just a single shader pass).
OpenVR API exposed depth textures since a while ago, but that would have not been a good fit for the Quest 1, since 72Hz / 2 = 36Hz is too low for ensuring a good experience. But now that the Quest 2 supports 90Hz this makes more sense.
I also want to mention that this technique does not lend well to avoid positional stutters. This is because ASW needs the depth map, that needs to be sent from PC to the Quest like any other frame, and this takes time. Waiting for the the depth map to arrive increases latency dramatically, and it might not be feasible for 72 or 90 fps.
So in the end, the advantage of this technique is only to lower the computational power needed to render games on PC.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.