December 27, 2014, 09:59 (GMT) |
New edit mode for hair. |
December 27, 2014, 09:59 (GMT) |
Moved code for the hair edit data structures to blenkernel. This makes it work more like editmesh, and avoid the awkward and basically bad-level approach in particles, where the edit data is an anonymous pointer in particle systems together with a callback for freeing. |
December 27, 2014, 09:59 (GMT) |
Store hair edit data in particle systems and manage it in the operator for entering/exiting the edit mode. |
December 27, 2014, 09:59 (GMT) |
Reconstruct most basic particle data when applying the hair edit, so particle hairs remain visible. Note that currently the hair root location (num/num_dmcache, fuv, foffset) is not stored from edit data, so all hairs end up in a default location. |
December 27, 2014, 09:58 (GMT) |
Skeleton code for sampling meshes. |
December 27, 2014, 09:58 (GMT) |
Usable random distribution algorithm. Does not include area weighting yet. |
December 27, 2014, 09:58 (GMT) |
Eval function to get a location and normal vector from mesh samples. |
December 27, 2014, 09:58 (GMT) |
Added a basic RNA definition for the mesh sampling system. |
December 27, 2014, 09:58 (GMT) |
Added a bool return to the eval function to give feedback on invalid samples. |
December 27, 2014, 09:58 (GMT) |
Normalize the normal vector after sample eval to account for interpolation. |
December 27, 2014, 09:58 (GMT) |
Changed mesh sample definition to use 3 vertex weights instead of a face index. This is easier to sample uniformly and avoids the need for tesselation for evaluating. |
December 27, 2014, 09:58 (GMT) |
Added generalized method for creating an array of mesh samples with arbitrary stride. |
December 27, 2014, 09:58 (GMT) |
Shifted the dispatch from the algorithm side to the storage side of the sampling system to keep the code simple. Now there is a MSurfaceSampleStorage struct that encodes the storage details, which the algorithms don't have to care about. |
December 27, 2014, 09:58 (GMT) |
Minor syntax fix. |
December 27, 2014, 09:58 (GMT) |
New editor library for hair edit mode. |
Revision d9b7655 by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) December 22, 2014, 10:54 (GMT) |
Fix for invalid access to undefined hair data in edge-only cloth meshes. Cloth data is used both for hair and actual cloth, which makes things really difficult. The face number was used for distinguishing the two types (no faces == hair mesh), but the extra hair data necessary for hair sim is generated by particles and not available for edge-only cloth meshes. This really needs to be sanitized ... |
Revision bffe48f by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) December 19, 2014, 13:56 (GMT) |
Presets for hair dynamics. This is necessary because the hair dynamics settings are not part of the ParticleSettings datablock, but part of the convoluted cloth modifier inside the particle system struct. In the future this will be recoded properly, but in the meantime presets provide a simple an unobtrusive way to have reusable dynamics settings for hair. |
Revision 1fd375f by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) December 19, 2014, 12:37 (GMT) |
Merge branch 'master' into gooseberry |
Revision 61bba5e by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) December 18, 2014, 12:52 (GMT) |
Radical simplification of the wind effect on hair, since the previous approach does not work very well. Using a cross section estimate still causes large oscillations due to varying hair force based on angles. It also requires a sensible hair thickness value (particle radius) which is difficult to control and visualize at this point. The new model is based purely on per-vertex forces, which seems to be much more stable. It's also somewhat justified by the fact that each hair vertex represents a certain mass. |
Revision 3a7b5bd by Lukas Toenne (gooseberry, gooseberry_farm, hair_immediate_fixes, temp_constraint_volume, temp_hair_flow, temp_hair_modifiers, temp_motionpaths) December 16, 2014, 18:40 (GMT) |
Improved force field effects on hair strands. The previous calculation was modulated with the angle between the wind direction and the segments, which leads to very oscillating behavior. Now the formula includes an estimate for the geometric cross section of a hair segment based on the incident angle and the hair thickness (currently just the particle size). This gives a more stable behavior and more realistic response to wind. |
|