Forceflow / trimesh2

C++ library and set of utilities for input, output, and basic manipulation of 3D triangle meshes
GNU General Public License v2.0
307 stars 72 forks source link

Strange translation results. #3

Closed perrykipkerrie closed 5 years ago

perrykipkerrie commented 6 years ago

Hi Forceflow,

Firstly thank you for the great fork!

I think i've bug in the ICP algorithm.

With certain objects, when they are located over eachother, the translation get messed up, and the resulting transformation matrix will cause the object jump to the other side of the screen. The resulting rotation matrix is perfect, but it is the translation that is causing trouble.

Its not present in all cases, but in the teeth (which are attached) the phenomenon is present.

What do you think about this?

testset.zip

Forceflow commented 6 years ago

I'm not overly familiar with the ICP algorithm. Have you tried switching between a 32-bit and 64-bit build, just to see if that makes any difference? They should produce the same results, but you never know.

perrykipkerrie commented 6 years ago

Thank you for your quick reply.

I've used the 32bits, but it gives the same results.

Forceflow commented 5 years ago

@perrykipkerrie The ICP stuff got an overhaul in the latest Trimesh2 release, from upstream. Closing this, create a new issue if you still think there's something whack about the implementation.