mirror of
https://github.com/bjornbytes/lovr.git
synced 2024-07-04 13:33:34 +00:00
Origin type used to be a query-able property of the VR system that indicated whether the tracking was roomscale or seated-scale. The t.headset.offset config value could be used to design an origin-agnostic experience, which by default shifted content up 1.7 meters when tracking was seated-scale. That way, stuff rendered at y=1.7m was always at "eye level". It worked pretty well. It's getting replaced with a t.headset.seated flag. - If seated is false (the default), the origin of the coordinate space will be on the floor, enabling the y=1.7m eye level paradigm. If tracking is not roomscale, a floor offset of 1.7m will be emulated. - If seated is true, the origin of the coordinate space will be y=0 at eye level (where the headset was when the app started). This is the case on both roomscale and seated-scale tracking. So basically 'seated' is an opt-in preference for where the app wants its vertical origin to be. One advantage of this is that it's possible to consistently get a y=0 eye level coordinate space, which was not possible before. This makes it easier to design simpler experiences that only need to render a floating UI and don't want to render a full environment or deal with offsetting everything relative to a 'floor'. This also makes it easier to implement hybrid VR+flatscreen experiences, because the camera is at y=0 when the headset module is disabled. The opt-in nature of the flag, coupled with the fact that it is consistent across all types of tracking and hardware, is hopefully a more useful design. |
||
---|---|---|
.. | ||
api | ||
core | ||
lib | ||
modules | ||
main.c | ||
util.c | ||
util.h |