I need more data on how the Ultra Engine works.
I had great success combining the Vicon SDK headers, dlls ..., inside Ultra Engine.
It is used to track real life objects into virtual space.
The tracking translation works fine, however I have great issues adjusting the details.
The Vicon SDK Documentation says this about their conventions
Units
"Positions are expressed in millimeters. Rotation is expressed in radians."
When I convert from radians to degrees to be applicable inside Ultra Engine, there are various issues, such as the object flipping at certain angles etc. I convert by multiplying each vector component by (180 / 3.14)
Instead of Euler XYZ there are also functions to get the Quat , x y z w . This had no flipping issues but the axis are not aligned.
"The quaternion is of the form (x, y, z, w) where w is the real component and x, y and z are the imaginary
components. N.B. This is different from that used in many other applications, which use (w, x, y, z)."
Ultra Engine uses x,y,z,w as i remember from the documentation. However the axis are still flipped.
I made a video to show how the tracking currently works:
https://ody.sh/b85p8I5GK8 (odysee)
SetAxisMapping() :
Vicon Data uses a right-handed coordinate system, with +X forward, +Y left, and +Z up
I am at a loss at how to properly implement this.