Revision e7e2195 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) August 27, 2014, 16:12 (GMT) |
Fixed hair velocity smoothing. This is an important hair interaction feature that simulates friction between hairs in an efficient way. The method is based on the paper "Volumetric Methods for Simulation and Rendering of Hair" ( http://graphics.pixar.com/library/Hair/paper.pdf ) It was partially implemented already, but didn't work in this simplified version. The same voxel structure can be used for implemeting repelling forces on hair based on density, which can help a hair system maintain volume instead of collapsing in on itself. |
Revision bd1c736 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) August 27, 2014, 12:11 (GMT) |
Support for various data properties of the hair grid in the voxel texture. |
Revision 93d8e94 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) August 27, 2014, 10:33 (GMT) |
Fixed voxel grid initialization from hair points and colliders by using the suggested tent function from the original paper. Plain float->int conversion for the grid location otherwise leads to skewed data and unnecessary loss of information. |
Revision 5d87f52 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) August 27, 2014, 10:33 (GMT) |
New voxel texture mode "Hair", for displaying the internal hair volume structure as a texture. This is mostly a debugging feature that may be removed again later. |
Revision a5be383 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, hair_system, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) August 27, 2014, 10:33 (GMT) |
Code cleanup: Use a variable-sized array for the hair volume velocity smoothing and collision code, split into multiple functions. |
August 25, 2014, 15:43 (GMT) |
Renamed t0/t1 times to clarify their meaning. These are usually a larger time interval than the time step, they define the interpolation for root animation. |
August 25, 2014, 15:34 (GMT) |
Fixed missing variable assignment when calculating hair root animation for particle hair. |
August 25, 2014, 09:55 (GMT) |
Hair root normals need to be renormalized after transformation to world space, since the obmat can introduce scaling. |
August 24, 2014, 16:54 (GMT) |
Voxel texture mode "Hair" for displaying hair volume data. Currently only a dummy attribute "randomstuff" exists, this will be replaced by actual hair data (density and filtered velocities). |
August 24, 2014, 14:47 (GMT) |
Hair debug function which copies voxel data to a C struct based on solver data. |
August 24, 2014, 13:43 (GMT) |
Simple volume instance owned by the hair solver. |
August 24, 2014, 13:38 (GMT) |
Create hair threads in a separate function. |
August 24, 2014, 13:24 (GMT) |
Use a separate variable for incrementing time during substeps. Currently this has no effect, but better to avoid using the wrong time value after force substeps. |
August 24, 2014, 13:15 (GMT) |
Fix for meaningless position updates during the force integration loop. Setting the "next" state of positions inside that loop will overwrite its own result until the last iteration. The velocities are still integrated correctly though, only the position update was applied incorrectly. Force calculation was also using the larger original time step. The fix now exposes an awkward dependency of stiffness and damping values on the substep count. This is entirely expected, but it might be a good idea to scale user-defined values by the inverse timestep, so that results are comparable and can be tweaked more easily when increasing/decreasing substeps. |
August 24, 2014, 11:54 (GMT) |
Distinguish nominal and allocated size of hair volume attributes. This allows keeping extra memory around for later use instead of freeing every time the attribute needs to be resized (compare to std::vector). |
August 24, 2014, 11:34 (GMT) |
Added a basic volume data structure for hair simulation. Using volumetric description of certain hair simulation quantities allows very efficient calculation of otherwise costly effects, such as hair-hair collisions (at the price of reduced accuracy). |
August 24, 2014, 09:11 (GMT) |
Merge branch 'master' into hair_system |
August 22, 2014, 17:35 (GMT) |
Take care of at least some of the crashes experienced during Gooseberry meeting. |
August 22, 2014, 17:24 (GMT) |
wipwipwip |
August 22, 2014, 17:24 (GMT) |
WIP inverse transform, still misbehaving |
|