Revision da01c88 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Cleanup, removed unused old code. |
Revision d91a4cd by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Optimized matrix filling using the Eigen triplets method. Otherwise the construction of matrices becomes very slow for larger vertex counts because adding a new element is O(n), making it O(n^2) in total. |
Revision e55d114 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Added back external effector forces for the cloth solver. |
Revision ace1b50 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Reenabled goal springs and removed the arbitrary structural scaling factor. |
Revision c7932e9 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Fixed bending forces for cloth springs. |
Revision 6d4c704 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Correctly implemented and verified gravity, drag, structural springs. |
Revision f336ca5 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Minor fix in debug print, so solver prints can be diff'ed. |
Revision b241f23 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
A couple of defines to disable various influences on the cloth sim for debugging. |
Revision 1819cbd by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Debug printing code for large sparse vectors and matrices, to compare solver input/output of the old and new methods. |
Revision 8283122 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Added a new internal header for implicit solver defines. Should become its own intern wrapper library eventually. |
Revision 7896827 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Reenabled air drag force for cloth sim. |
Revision e0b46b1 by Lukas Toenne January 20, 2015, 08:29 (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. |
Revision 8163fca by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Switched to the modified CG method that supports constraints, and added back structural stretch springs. |
Revision c6a65ff by Lukas Toenne January 20, 2015, 08:29 (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. |
Revision 722fd30 by Lukas Toenne January 20, 2015, 08:29 (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 ... |
Revision d2c0503 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
To make gravity a true force vector, multiply by the mass. |
Revision 8313735 by Lukas Toenne January 20, 2015, 08:29 (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. |
Revision 396f7ea by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Don't try to enforce a velocity change for pinned vertices; their velocity is defined externally by hair root motion. |
Revision d1cb8b0 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Use squareroot of the current epsilon error target for CG, since we square this value anyway. |
Revision 8ec4c31 by Lukas Toenne January 20, 2015, 08:29 (GMT) |
Disabled collision culling on the inside of the collider faces for now, this seems to remove too many contact points somehow ... |
|
|
|


Master Commits
MiikaHweb | 2003-2021