You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In additional of the common attributes, the transform nodes for the generic trackers are named "VirtualReality.GenericTracker" and set with these attributes:
Since the vtkRenderingOpenXR API (and by extension the OpenXR specification ?) does not provide a way to get the state of the controllers & trackers:
can the validity of the pose be inferred from the associated transform ?
or do we need to improve vtkRenderingOpenXR API ?
To help answer, here are few observations:
VirtualReality.TrackerActive, VirtualReality.HMDActive and VirtualReality.ControllerActive are set but not used (in SlicerVirtualReality extension)
VirtualReality.PoseStatus is used in qMRMLVirtualRealityTransformWidget::updateWidgetFromMRML to exit if there are no change compared to the last status, or update the the icon representing the status of each trackers (including HMD and controllers)
VirtualReality.VRDeviceID is set but not used (in SlicerVirtualReality extension)
Optionally, to improve the user experience, it would be nice to still have a way to report the status of each controllers & trackers.
Based on the observations, the critical information we need to have available through OpenXR are the controllers and trackers transforms.
OpenVR
Transforms for controllers, HMD, and trackers can optionally be created and added to the scene.
The update of the transform is done using the following API:
SlicerVirtualReality/VirtualReality/Widgets/qMRMLVirtualRealityView_p.h
Lines 92 to 95 in 53a9549
all transform nodes have the following attributes in common:
Controllers
Based on the state of the controller, the following MRML attributes are set:
Additionally, the position of each controller is updated leveraging the OpenVR specific API
vtkOpenVRRenderWindow::GetOpenVRPose()
HMD
Based on the retrieve state, the attribute
VirtualReality.HMDActive
is set:SlicerVirtualReality/VirtualReality/Widgets/qMRMLVirtualRealityView.cxx
Lines 576 to 583 in 53a9549
Generic trackers
In additional of the common attributes, the transform nodes for the generic trackers are named "VirtualReality.GenericTracker" and set with these attributes:
Related issues:
OpenXR
Since the
vtkRenderingOpenXR
API (and by extension the OpenXR specification ?) does not provide a way to get the state of the controllers & trackers:vtkRenderingOpenXR
API ?To help answer, here are few observations:
VirtualReality.TrackerActive
,VirtualReality.HMDActive
andVirtualReality.ControllerActive
are set but not used (inSlicerVirtualReality
extension)VirtualReality.PoseStatus
is used inqMRMLVirtualRealityTransformWidget::updateWidgetFromMRML
to exit if there are no change compared to the last status, or update the the icon representing the status of each trackers (including HMD and controllers)VirtualReality.VRDeviceID
is set but not used (inSlicerVirtualReality
extension)Optionally, to improve the user experience, it would be nice to still have a way to report the status of each controllers & trackers.
Based on the observations, the critical information we need to have available through OpenXR are the controllers and trackers transforms.
cc: @LucasGandel @lassoan @cpinter @adamrankin
The text was updated successfully, but these errors were encountered: