Absolute vs Relative Haptics

Gerald McAlister | RGB Haptics | Beginner


A key concept to understand to make the most of RGB Haptics is the difference between Absolute Haptics and Relative Haptics. These two types can be used interchangably, but the ways in which you use them will drastically change how your projects haptics are player for users. This set of tutorials does not have any samples projects, as it focuses on explaining the core concepts of RGB Haptics instead.

Absolute Haptics

Absolute Haptics can be thought of as more traditional haptic playback. When using Absolute Haptics, you will need to specify the devices through which the haptics should play out of. In this way, Absolute Haptics are much similar to traditional haptics since it does not automatically handle things like are the player’s hands touching the object before playing its haptics. However, with RGB Haptics, you can still get the more complex playback of waveforms and audio files using Absolute Haptics. We also handle things like synchronizing the haptic playback with audio, and ensuring ease of use. An example where you might choose to use Absolute Haptics is when playing a special effect in the distance that you want the player’s hands to still feel. Since the player is far away from the effect and not touching it, Absolute Haptics will allow you to specify what devices should feel the haptics playing still.

Relative Haptics

Relative Haptics try to operate much more similarly to how vibrational haptics work in the real world. That is, in order to feel relative haptics, you need a XRNodeHaptics component on a GameObject, and that GameObject must be colliding with the GameObject emitting the haptics. RGB Haptics not only handles ensuring the playback is only played on objects that are touching, it also handles ensuring that haptics propagate through other objects to the player’s hands. This can best be visualized like so:

Haptics propagate like so. In the above graph, since all of the objects are connected, if any of them emit a haptic, then the player’s hand will feel it since it will propagate to each object.

RGB Haptics tries to ensure that no closed loops are formed when playing back the haptics as well, meaning that all objects touching each other will propagate haptic playback only once like they would in the real world. An example of where you might choose to use Relative Haptics is when the user is holding objects stacked on top of each other. If the top object begins emitting a haptic effect, the player’s hands should still feel some kind of haptic effect from it.