SDraw / driver_leap

Self-sustainable fork of SteamVR driver for Leap Motion controller with updated vendor libraries
MIT License
128 stars 19 forks source link

Fixing thumb rotation, applying joint positions for proper hand scaling #4

Closed jcorvinus closed 3 months ago

jcorvinus commented 3 months ago

This pull request increases the accuracy of the SteamVR Skeletal Input Data, making it more representative of the data coming out of the Leap Motion device.

For comparison, I used an application built for this purpose. The grey and opaque low poly hands are a standard representation of Leap tracking data as provided by Ultraleap's unity plugin. The translucent hands are SteamVR hands.

Before

https://github.com/SDraw/driver_leap/assets/4423326/15b53255-b69f-4f6a-b7a1-b503c84f78b0

After

https://github.com/SDraw/driver_leap/assets/4423326/42bafd28-2287-4c4f-a53e-ac0bba9644da

This change enables applications that natively support hand tracking via SteamVR Skeletal Input to rely on the incoming tracking data for input purposes. The video demonstrates that pinch gestures are now enabled, as are fingertip positions for poking. It also brings this driver one step closer to being conformant with VRChat's SteamVR Skeletal Hand Tracking Driver Guide

SDraw commented 3 months ago

Nice, will merge CLeapHand::GetThumbBoneLocalRotation into CLeapHand::GetBoneLocalRotation a little bit later