January 19, 2015, 16:54 (GMT) |
Debug printing code for large sparse vectors and matrices, to compare solver input/output of the old and new methods. |
January 19, 2015, 16:54 (GMT) |
Added a new internal header for implicit solver defines. Should become its own intern wrapper library eventually. |
January 19, 2015, 16:54 (GMT) |
Reenabled air drag force for cloth sim. |
January 19, 2015, 16:54 (GMT) |
Arbitrary scaling factor for the structural spring forces (stretching). This is not nice at all, but for some reason (possibly time scale) the old force values are much too high and cause the solver to become unstable. These will be revisited later anyway, so for now such scaling should be fine. |
January 19, 2015, 16:54 (GMT) |
Switched to the modified CG method that supports constraints, and added back structural stretch springs. |
January 19, 2015, 16:54 (GMT) |
Implemented a modifier conjugate gradient algorithm to support stable constraining. The algorithm is described in the paper "Large Steps in Cloth Simulation" (Baraff/Witkin 1998). The same method was (incorrectly) implemented in the old cloth solver. It is based on restricting the degrees of freedom (ndof) of vertices using a block matrix and a vector of target velocity deltas. See chapter 5 of the paper for details. |
January 19, 2015, 16:53 (GMT) |
Reimplemented Goal springs for the Eigen CG solver method. Note that goal springs currently are really bad ... They have a factor on hairs that "fades" goal influence from the root to the tip. The last point on the hair is completely free, which makes the goal springs pretty much useless on their own without supporting bend stiffness. Can only assume this was added to compensate unphysical behavior of goal springs when using uniform weight, but it's a poor replacement for true localized bending forces ... |
January 19, 2015, 16:53 (GMT) |
To make gravity a true force vector, multiply by the mass. |
January 19, 2015, 16:53 (GMT) |
Alternative new solver for cloth using the Eigen CG solver instead of a custom built solver. The old cloth solver is broken unfortunately. Eigen is a designated linear algebra library and very likely their implementation is a lot better (can't compare until it's implemented though). Only basic gravity is active atm, spring forces, external force fields, damping and volumetric friction have to be added back by converting the data into the Eigen format. |
January 19, 2015, 16:52 (GMT) |
Don't try to enforce a velocity change for pinned vertices; their velocity is defined externally by hair root motion. |
January 19, 2015, 16:52 (GMT) |
Use squareroot of the current epsilon error target for CG, since we square this value anyway. |
January 19, 2015, 16:52 (GMT) |
Disabled collision culling on the inside of the collider faces for now, this seems to remove too many contact points somehow ... |
January 19, 2015, 16:52 (GMT) |
Fix for collision response, the impulse response was far too small. |
January 19, 2015, 16:52 (GMT) |
Use the S matrix of the modifier CG algorithm for implementing collision responses. The S matrix together with the z Vector encodes the degrees of freedom of a colliding hair point and the target velocity change. In a collision the hair vertex is restricted in the normal direction (when moving toward the collider) and the collision dynamics define target velocity. |
January 19, 2015, 16:52 (GMT) |
Better contact point near-test for hair. This simply uses the position above the triangle instead of the intersection point of the vertex path. The other method was broken anyway, but also has a problem catching all the contacts reliably. The new method might have a few false positives but that is acceptable. |
January 19, 2015, 16:51 (GMT) |
Fixed for hair collision detection, old/new positions were swapped. |
January 19, 2015, 16:51 (GMT) |
Reduced minimum for cloth solver substeps to 1. This is not very useful for artists, but helps with debugging. |
January 19, 2015, 16:43 (GMT) |
Removed own debug print. |
January 19, 2015, 16:43 (GMT) |
Added a comment and use the new CG solver as the "official" version now. |
January 19, 2015, 16:43 (GMT) |
Fixed implementation of the Conjugate Gradient method for the cloth solver that properly supports constraints with some degrees-of-freedom. The previous solver implementation only used the S matrix (constraint filter matrix) for pinning vertices, in which case all elements are zero and the error doesn't show up. With partial constraints (useful for collision contacts) the matrix has non-zero off-diagonal elements and the algorithm easily diverges. There are also initial steps for implementing collision prevention as described in the Baraff/Witkin paper "Large Steps in Cloth Simulation" (http://www.cs.cmu.edu/~baraff/papers/sig98.pdf). |
|
|
|


Master Commits
MiikaHweb | 2003-2021