98b56aadeced9ed4240f01b830d7221ff3d644e7
This was caused by an incorrect assumption in the solver: It tries to solve both collision and length constraints simultaneously, using the projected movement of a point as a slide direction along the surface. This only works if the distance of the previous curve point to the surface is less than the allowed segment length. Otherwise the segment will exceed the allowed length even with zero slide and NaN values are computed. The case of larger surface distance can occur if the previous segment solve was already stretching the current segment and then the point moves further away. In this case we can simply clamp the segment length without violating the contact constraint. Fixes #105467 Pull Request #105499
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
