Skip to content

[non-BE] Fix for QuaternionSlerp inaccuracies in corner cases

Marek Szczerba requested to merge 1067-quaternionslerp-inaccuracies into main

Reason why this change is needed

As reported in BASOP ticket #738, the original implementation of QuaternionSlerp function is very simplistic, which results in inaccuracies in corner cases. An updated QuaternionSlerp has been provided to BASOP respository. This implementation has been thoroughly tested against the quaternion slerp implementation in .NET Framework.

Description of the change

The main changes are:

  • Changing sign of the second quaternion in the case of angles between quaternions above 180 degrees,
  • Using linear interpolation instead of spherical interpolation for very small angles between quaternions less than 0.1 degree.

Affected operating points

  • Binaural rendering with
    • Long-term average head orientation tracking
    • External orientation tracking

Related to #1067 (closed)

Merge request reports

Loading