Update MRTK-based controls to MRTK 2.0 specs
There's lots that still needs to be done, so this will be a bucket task to contain everything. Tasks are taken from MRTK's guide here: https://docs.microsoft.com/en-us/windows/mixed-reality/mrtk-unity/?view=mrtkunity-2021-05#ux-building-blocks
- [ ] BoundingBoxGizmo: Introduce MRTK 2.0 visuals, behind a flag. Use MRTK 1 (current) by default
- Replace each interaction joint with slender bars along the relevant edges
- Hide non-relevant bars on interaction with a given bar
- Draw faint bounding box when visuals are active
- Hide most visuals when not active (ray/hand is not near)
- [ ] TouchHolographicMenu: Introduce ability to add more controls, like a backplated slider
- [ ] TouchHolographicMenu: Add manipulation visuals around edges
- [ ] TouchHolographicMenu: Add snap-to-world toggle functionality
Quality of life changes:
- [ ] TouchHolographicButton: Text scaling when sizing UI for AR/VR is too small
- [ ] HolographicSlate: Fix slate depth on browser (appears inside near clipping plane)
- [ ] Slider3D: Add text, description to slider thumb
Completed:
- [x] TouchHolographicButton: pressing button should compress front, not scale button
- [x] VolumeBasedPanel: Needs support for tall panels (just one column)
- Already supported, just hidden. Explicitly setting VBP.rows will populate the panel one column at a time instead of one row at a time
- [x] VolumeBasedPanel: Expose a way to customize padding amounts
- Padding is determined at TouchHolographicMenu level, change was made there
- [x] SixDofDragBehavior: Add support for near interaction rotation using wrist joint orientation
- Pass orientation of controller/hand through via pick data, instead of just direction of raycast. This way we can also enable proper rotation manipulation for motion controllers.
- [x] HolographicSlate: Have corner resizers respect the slate's aspect ratio
- [x] HolographicSlate: Have scaling applied to slate be applied to the slate's bounding box as well
- [x] Slider3D: Add backplate support
- MRTK appears to use touch instead of grab when a backplate is present
- Visuals on the thumb also change to a circular cylinder
- [x] Slider3D: Change slider thumb visual to cylindrical oval
- [x] TouchHolographicMenu: Backplate visibility shouldn't be tied to all buttons that share resources
- [x] HandMenu: Lock menu to left hand so common-dominant hand can press buttons
- [x] HandMenu: Trim backplate to snap to buttons
- [x] HandMenu: Change visibility settings to disappear if hand is not palm up and focused, either with eye or head gaze

@rickfromwork Hi, I'm new to WebXR and I'm not very clear about the concepts in the task list you listed above; Can you tell me whether “Near manipulation” done? it is found that "Far manipulation" is completed in WebXR Babylon demo,but i can't found demo about Near manipulation function
@rickfromwork Hi, I'm new to WebXR and I'm not very clear about the concepts in the task list you listed above; Can you tell me whether “Near manipulation” done? it is found that "Far manipulation" is completed in WebXR Babylon demo,but i can't found demo about Near manipulation function
@DLGL99GL Near manipulation is implemented for browsers that support hand joint tracking in XR, however there is not yet a demo scene with it already activated. It should be available for use though as soon as you enable the hand tracking feature, such as in the following playground example: https://www.babylonjs-playground.com/#F41V6N#512
We are closing this as MRTK for Babylon.js has been released. Feel free to open a new issue, for additional work.