Revision 5f44f4a by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:14 (GMT) |
Intermediate commit: switching strand edit data to BMesh. Hair/Strand editing will only use a subset of the bmesh topology and expect a specific topology that needs to be verified and enforced. However, this extra requirement is much less work than reimplementing a whole edit data system with the same feature set as bmesh and avoids much redundant code. Conflicts: source/blender/blenkernel/intern/customdata.c source/blender/makesdna/DNA_customdata_types.h |
Revision b0a9e48 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:14 (GMT) |
New customdata type for mesh surface samples. Conflicts: source/blender/makesdna/DNA_customdata_types.h |
Revision afb947c by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:13 (GMT) |
Switched the hair edit data to a bmesh-like structure for consistency. This means using mempools to store curve and vertex data, which allows arbitrary addition and removal of data more easily. Also this includes an iterator system similar to bmesh iterators (although the simpler topology makes it a lot less complex). Conflicts: source/blender/blenkernel/intern/customdata.c source/blender/makesdna/DNA_customdata_types.h |
Revision f1e4d35 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:12 (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. |
Revision 1c7053f by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:11 (GMT) |
Store hair edit data in particle systems and manage it in the operator for entering/exiting the edit mode. Conflicts: source/blender/blenkernel/intern/particle.c |
Revision 7bb90a0 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:11 (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. Conflicts: source/blender/blenkernel/CMakeLists.txt |
Revision a9001ad by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:11 (GMT) |
New edit mode for hair. Conflicts: source/blender/blenloader/intern/readfile.c |
Revision 09a7dbc by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
New editor library for hair edit mode. |
Revision 6078e79 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Minor syntax fix. |
Revision 6783b15 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (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. |
Revision c65f1b2 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
More work on particle conversion methods for hair edit mode. |
Revision dd69a3d by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Finished the particle-to-edit conversion function. |
Revision 308af3b by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Added a bool return to the eval function to give feedback on invalid samples. |
Revision 3f7d66e by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Added a basic RNA definition for the mesh sampling system. |
Revision 4b4f246 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (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. |
Revision 71e34da by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Usable random distribution algorithm. Does not include area weighting yet. |
Revision 82132fc by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Added generalized method for creating an array of mesh samples with arbitrary stride. |
Revision a952800 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Eval function to get a location and normal vector from mesh samples. |
Revision fe48c35 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Normalize the normal vector after sample eval to account for interpolation. |
Revision 24b7735 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Skeleton code for sampling meshes. Conflicts: source/blender/blenkernel/CMakeLists.txt |
|