Update FoV dynamically when HMD FoV changes#372
Conversation
|
Sorry for the awkward commit title. It is written without much mind and as a sentence it looks incorrect. We can fix it later when merging if it got updated and merged later. |
7e13e5d to
a9d3f21
Compare
|
Selected road (B): Implemented FOV change detection for dynamic projection matrix updates.
|
|
@Asxcvbn you might update your PR title if you can. Maybe: I tested it and it works great! @praydog this MR is a great improvement for users with 3D displays that use VRto3D, WibbleWobble, etc. It allows us to change the FoV dynamically to adjust the strength of the 3D effect. It is also useful for quickly finding the right horizontal FoV for the gameplay. |
|
@praydog |
#371
Note that this is a very simple and awkward fix of the issue and I dont think it is good to merge yet. I need some help improving it.
Key idea: OpenXR::update_matrices() is, i guess, called every frame. The projection matrix(for intricsic parameters) update are somehow skipped in the function. And since convergence settings are effectly changing the intricsic parameters, we got convergence settings ignored in uevr. So to fix it, we just force the projection matrix update every 100frames (in case it is expensive, which looks unlikely).
To improve it, I have 2 ideas.