-
Notifications
You must be signed in to change notification settings - Fork 6
PRISM
Overview
PRISM allows a user to accurately manipulate objects with high precision. After selecting an object a user can precisely move with slow hand movements which are then scaled down relatively. This scale is independent on each of the axis (x,y,z). If a user speeds up their movement the object will "catch" up to the hand with a 1 to 1 ration to it. PRISM also allows this scaling to be applied to the rotation axis to allow high precision in 6DOF.

Source paper of the technique:
S. Frees, G. Kessler and E. Kay, "PRISM interaction for enhancing control in immersive virtual environments", ACM Transactions on Computer-Human Interaction, vol. 14, no. 1, p. 2-es, 2007.
Use by manually attaching
To manually attach the PRISM to the Camerarig VR components if the auto-attach fails for each hand:
- Drag onto PRISM Movement script:
- Relevant controller onto tracked Obj
Inspector parameters
For PRISM Script:
| Parameter | Default | Description |
|---|---|---|
| Interaction Layers | PickableObject | The layers that the technique can interact with |
| Colliding Object | None | Object that PRISM hand is hovered over |
| Object In Hand | None | Object that PRISM hand is currently holding |
| Min S | 0.001 | Minimum velocity before object wont move |
| Scaled Constant | 0.5 | Minimum velocity before object enters scaled mode |
| MaxS | 2 | Velocity at which PRISM recovers distance from scaling |
| Selected Object() | Empty | Event Invoked when an object is selected |
| Hovered() | Empty | Event Invoked when an object is hovered over |
| UnHovered() | Empty | Event Invoked when an object ceases being hovered over |
Test/Example scenes
Major example scene under:
- Assets/Technique Example Scenes/Scenes/PRISMMovementExample
Wiki
Hand Grasping
Enhanced Grasping
Volume-based Pointing
Enhanced Pointing
Symmetric Bi-manual
Asymmetric Bi-manual
Progressive refinement