Skip to content

Aperture Selection

Ian edited this page Nov 3, 2018 · 16 revisions

Overview

Aperture selection is a modified version of the flashlight. The core modification is instead of a cone originating from the controller it originates from the users camera/view-point. The user can then use one of their hands to control the spread/distance of the flashlight. To select from far away the user would point further away and the cone would grow in size, conversely it will get smaller if you point closer to yourself. for further disambiguation the user can control the rotation of two plates at the end of the cone to allow precise selection between objects inside of the cone.

Source paper of the technique:

Forsberg, A., K. Herndon, and R. Zeleznik (1996). Aperture Based Selection for Immersive Virtual Environments. Proceedings of the 1996 ACM Symposium on User Interface Software and Technology (UIST ‘96), ACM Press, 95–96.


Use by manually attaching

To manually attach the Aperture Selection to the Camerarig VR components if the auto-attach fails:

  • Drag onto Aperture Selection script:
    • Dominate controller to control aperture depth into ControllerTrackedObj
    • Camera head onto Headset tracked Obj
  • Drag onto Aperture Selection Selector script:
    • The same dominate controller onto The Controller
  • Drag the Dominate controller onto the controller in Aperature selection Controller script

Inspector parameters

For Aperture Selection Script:

Parameter Default Description
Laser Prefab Laser Small laser projected from dominate hand to show its the control hand
Laser Container Lasercontainer Place to keep the laser in-game
Amplification of length 4 Amplification of how far the cone volume will reach relative to the distance from domiante controller to head

For Aperture Selection Selector Script:

Parameter Default Description
Interaction Layers PickableObject The layers that the technique can interact with
Interaction Type Manipulation When set to manipulation Aperture selection can move objects via fixed joints. When pure selection it will just send an event that it has selected and place the object into a public variable.
Selection None The currently selected object
Object Hovered Over None The object currently hovered over
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/AperatureExampleScene

Clone this wiki locally