STORM-IRIT / Radium-Engine

Research 3D Engine for rendering, animation and processing
https://storm-irit.github.io/Radium-Engine/
Apache License 2.0
100 stars 50 forks source link

DQS issue. The dual quaternions are going the wrong way #118

Closed mauriziokovacic closed 8 years ago

mauriziokovacic commented 8 years ago

As you can see from the screenshot, something is going completely wrong

jeff

louen commented 8 years ago

Can you give a repro case ? I loaded jeff and this worked perfectly to me.

louen commented 8 years ago

screenshot_20160913_160450

mauriziokovacic commented 8 years ago

I just clone master, without making any change. When playing Jeff animation it will do that. It seems the same problem Baptiste was experiencing with his previous machine. Maybe it is something related to the OS or the machine. I'm running under Ubuntu now, but on Botero there was Debian. Also Val didn't experience it and he was not using Ubuntu as well

louen commented 8 years ago

Ok you are right about the DQS actually. screenshot_20160913_175908

mauriziokovacic commented 8 years ago

I know. I'm just bad at things, not stupid :P

louen commented 8 years ago

So, the problem was that in some cases our strategy to resolve the quaternion antipodality ( in setFromTransform() ) was not correct.

I implemented the "naive" version which uses the strategy from the paper (Kavan &al. 2008) and it worked better.

I left the naive implementation as a reference and fixed our current "optimized" version.