Revision 8374e08 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 14:10 (GMT) |
Mesh sampling system for unified point-on-mesh handling. This code is not yet used by any feature in master, but has proved very useful in the Gooseberry branch and several WIP patches. Inclusion into master was requested to avoid diverging code in branches and get part of the Gooseberry code merged early on. The core idea is to have a common way of identifying points on mesh surfaces. Efficient evaluation of such points after deformation and mappable modifiers (e.g. subdivision) tracks positions, normals and other surface attributes. This is used extensively in the particle/hair systems and could be useful for certain tools, duplicators, etc.. Currently the particle systems in particular are very fragile and succeptible to mesh changes because of the unreliable way mesh surface mapping is stored. While the new system at this point uses essentially the same method, it at least provides a centralized DNA type that can be improved easily without too much effort and compatiblity issues. In addition to evaluating surface samples the system also provides a central place to implement surface sampling algorithms, such as random sampling, ray casting, paint-like tools, etc. Differential Revision: https://developer.blender.org/D922 |
Revision 822949a by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 13:42 (GMT) |
Fix for uninitialized return value. |
Revision a86869a by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 13:41 (GMT) |
Better feedback about valid sample from mesh sampling methods. Conflicts: source/blender/editors/object/object_shapekey.c |
Revision ca31ce1 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 13:38 (GMT) |
New simple storage method for single sample values. |
Revision f61f7e2 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 13:36 (GMT) |
Generic raycast method for generating mesh surface samples. |
Revision 3036ced by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 13:34 (GMT) |
New mesh sample evaluation function for shape key data. |
Revision cc5b3c2 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 13:29 (GMT) |
Merge branch 'mesh_samples' of github.com:lukastoenne/blender into mesh_samples |
Revision a30f9ff by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) December 1, 2014, 13:29 (GMT) |
Merge branch 'master' into mesh_samples Conflicts: release/datafiles/locale release/scripts/addons |
Revision 3361788 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) November 30, 2014, 09:08 (GMT) |
Merge branch 'master' into mesh_samples Conflicts: release/datafiles/locale release/scripts/addons |
Revision 21ab9ac by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) September 24, 2014, 15:35 (GMT) |
Minor syntax fix. |
Revision 18c6bb2 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) September 24, 2014, 15:04 (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 a93841e by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) September 24, 2014, 13:58 (GMT) |
Added generalized method for creating an array of mesh samples with arbitrary stride. |
Revision 728b6ed by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) September 24, 2014, 13:54 (GMT) |
Merge branch 'master' into mesh_samples |
Revision fa0163b by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) March 4, 2014, 14:39 (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 7112a53 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) March 4, 2014, 12:42 (GMT) |
Normalize the normal vector after sample eval to account for interpolation. |
Revision 60cde6c by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) March 4, 2014, 12:42 (GMT) |
Added a bool return to the eval function to give feedback on invalid samples. |
Revision 717db95 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) March 3, 2014, 16:57 (GMT) |
Added a basic RNA definition for the mesh sampling system. |
Revision a944cf8 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) March 3, 2014, 13:10 (GMT) |
Eval function to get a location and normal vector from mesh samples. |
Revision a1dd14c by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) March 3, 2014, 11:36 (GMT) |
Usable random distribution algorithm. Does not include area weighting yet. |
Revision 47d024c by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, hair_system, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) March 3, 2014, 10:56 (GMT) |
Merge branch 'master' into mesh_samples |
|