Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Any way to use volume constraints on a character
#11
(27-04-2021, 01:59 AM)Hakazaba Wrote: I just want to reiterate, that the boarder particals had a static pin to the chest this entire time. And the verts of the slave were exactly on them. There may be a bug in how barometric coords are decided

Hi,

We have a batch of unit tests for barycentric coordinate generation, and seems to be working correctly as it passes all tests.

This can be due to 1) incorrect weighting, or 2) numerical precision issues:

1) Proxy skinning uses weights for barycentric, normal and elevation. These are exposed in the skinmap editor. The weights you choose have a lot of impact on the results, so vertices might not be bound to the triangle you expect. Each vertex will be bound to the triangle that results in the lowest score for
bary_weight * barycentric_delta + normal_weight * normal_delta + elevation_weight * elevation.

This favors vertices that are closer to the triangles's barycenter, better aligned with the interpolated triangle normal, and closer to the surface of the triangle.

You can use skin channels to manually determine which triangle to bound each vertex to.

2) when determining barycentric coordinates of a vertex, the vertex is not directly projected onto the triangle's surface. An iterative method is used to determine the point in the triangle's surface that results in an interpolated normal closest to the vertex, for smooth skinning results. The precision of this process depends on the number of iterations used. So the barycentric coordinate of a vertex that's exactly on top of a triangle vertex might not be (1,0,0), or (0,1,0) or (0,0,1), but (0.999, 0,0.001), etc.
Reply
#12
Thank you for the explanation, in this specific case, the strange behaviour only happened on vertexs near faces that are only at very specific angles. It was a circular ring holding a breast, a 90 degree angle between the edge and the volume cap behind.

The effect only happened on the top right and bottom right of the circle, at a perfect diagonal angle. The effect was exacerbated if the angle peaks in more than 90 degrees. The effect made it seem like the vertex was bound to the triangle that was futher inside the breast and not pinned. This effect happened even when the entire ring and back cap was in a different skinning group.

Having it in no skin group solved the problem, but the behaviour still seemed strange.
Reply