Revision 6cd7d8f by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 11, 2014, 12:19 (GMT) |
Added new data in the cloth modifier for hair root information. This will allow us to implement moving reference frames for hair and make "fictitious" forces optional, aiding in creating stable and controllable hair systems. Adding data in this place is a nasty hack, but it's too difficult to encode as a DM data layer and the whole cloth modifier/DM intermediate data copying for hair should be removed anyway. |
Revision f503262 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 11, 2014, 12:15 (GMT) |
Cleanup, removed unused old code. |
Revision a56baae by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 11, 2014, 09:14 (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 1f38343 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 21:11 (GMT) |
Added back external effector forces for the cloth solver. |
Revision cbe66e6 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 19:06 (GMT) |
Reenabled goal springs and removed the arbitrary structural scaling factor. |
Revision ccf98b9 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 17:14 (GMT) |
Fixed bending forces for cloth springs. |
Revision 0066cd1 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 16:55 (GMT) |
Correctly implemented and verified gravity, drag, structural springs. |
Revision e308e99 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 15:10 (GMT) |
Minor fix in debug print, so solver prints can be diff'ed. |
Revision b6f3db9 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 14:59 (GMT) |
A couple of defines to disable various influences on the cloth sim for debugging. |
Revision f235da9 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 14:04 (GMT) |
Debug printing code for large sparse vectors and matrices, to compare solver input/output of the old and new methods. |
Revision 3871ec3 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 10, 2014, 12:30 (GMT) |
Added a new internal header for implicit solver defines. Should become its own intern wrapper library eventually. |
Revision 0335d92 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 9, 2014, 10:36 (GMT) |
Reenabled air drag force for cloth sim. |
Revision dfba467 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 9, 2014, 10:01 (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 4b9771a by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 8, 2014, 17:03 (GMT) |
Switched to the modified CG method that supports constraints, and added back structural stretch springs. |
Revision 084c6de by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 8, 2014, 10:31 (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 e189fc0 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 5, 2014, 15:07 (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 4535a9d by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 5, 2014, 11:02 (GMT) |
To make gravity a true force vector, multiply by the mass. |
Revision 854600a by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 5, 2014, 10:48 (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 f3be91c by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 4, 2014, 17:58 (GMT) |
Don't try to enforce a velocity change for pinned vertices; their velocity is defined externally by hair root motion. |
Revision c4e00b1 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) September 4, 2014, 17:57 (GMT) |
Use squareroot of the current epsilon error target for CG, since we square this value anyway. |
|