Page MenuHome

XR: Controller Data Improvements
ClosedPublic

Authored by Peter Kim (muxed-reality) on Jul 29 2021, 6:05 AM.

Details

Summary

Provides two key improvements to runtime controller data.

  1. Separates controller poses into two components, "grip" and "aim",

which are both required to accurately represent the controllers
without manual offsets.

Following their OpenXR definitions, the grip pose represents the
user's hand when holding the controller, and the aim pose represents
the controller's aiming source.

  1. Runtime controller data is now stored as a dynamic array instead

of a fixed array. This makes the API/functionality more adaptable to
different systems.

Does not bring about any changes for users since only internal
runtime functionality is currently affected.

Is not dependent on the other VR patches, although it may be useful
to address this before D10943 (actionmaps) since it will affect the
upcoming RNA API.

Diff Detail

Repository
rB Blender

Event Timeline

Peter Kim (muxed-reality) requested review of this revision.Jul 29 2021, 6:05 AM
Peter Kim (muxed-reality) created this revision.
Julian Eisel (Severin) requested changes to this revision.Aug 5 2021, 12:33 PM

There seems to be one critical bug. Otherwise looks good.

source/blender/windowmanager/xr/intern/wm_xr_session.c
597

There are no next & prev pointers in wmXrController, so you can't use that in a list like this. Either add those or use LinkData.

This revision now requires changes to proceed.Aug 5 2021, 12:33 PM
Peter Kim (muxed-reality) edited the summary of this revision. (Show Details)

Add missing linked list pointers to wmXrController

This revision is now accepted and ready to land.Aug 5 2021, 1:50 PM
Peter Kim (muxed-reality) marked an inline comment as done.Aug 5 2021, 1:51 PM
Peter Kim (muxed-reality) added inline comments.
source/blender/windowmanager/xr/intern/wm_xr_session.c
597

Thanks for catching this. Added the next, prev pointers to wmXrController struct.

This revision was automatically updated to reflect the committed changes.
Peter Kim (muxed-reality) marked an inline comment as done.