3c7d5ec829af1d35f4272b0e4b549d45699af43b

There are two issues here. First, like in T81988 there are cases where the modifier would deform some vertices immediately after bind. This is caused by wrong assumptions in the code about the possible relative angles between various vectors, which can cause negative weights that don't blend correctly to appear. Specifically, it seems originally the code assumes that the centroid-point vector in the polygon plane lies somewhere between the mid-edge vectors. This is however not necessarily the case for distant vertices, because the polygon is not guaranteed to be truly planar, so normal projection may be a bit off. The code has to use signed angles and checks to support all possible angular arrangements. The second issue is very thin and long triangles, which tend to be very spatially unstable in their thin dimension, resulting in excess deformation. The code was weighting distance using the distances between the centroid and the mid-edge points, which in this case end up as nearly opposite vectors of sizable length and don't correctly represent how thin the triangle actually is. It is thus better to use centroid-to-line distances, and an additional even stricter value for the midpoint that will use only 3 vertices at evaluation time. Differential Revision: https://developer.blender.org/D10065
…
…
…
.. Keep this document short & concise, linking to external resources instead of including content in-line. See 'release/text/readme.html' for the end user read-me. 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. .. figure:: https://code.blender.org/wp-content/uploads/2018/12/springrg.jpg :scale: 50 % :align: center Project Pages ------------- - `Main Website <http://www.blender.org>`__ - `Reference Manual <https://docs.blender.org/manual/en/latest/index.html>`__ - `User Community <https://www.blender.org/community/>`__ Development ----------- - `Build Instructions <https://wiki.blender.org/wiki/Building_Blender>`__ - `Code Review & Bug Tracker <https://developer.blender.org>`__ - `Developer Forum <https://devtalk.blender.org>`__ - `Developer Documentation <https://wiki.blender.org>`__ License ------- Blender as a whole is licensed under the GNU Public License, Version 3. Individual files may have a different, but compatible license. See `blender.org/about/license <https://www.blender.org/about/license>`__ for details.
Description
Languages
C++
78.1%
Python
15%
C
2.8%
GLSL
1.8%
CMake
1.2%
Other
0.9%