diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2015-01-12 18:03:12 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-01-20 11:30:10 +0300 |
commit | c2306919b7cafdf4dbca876a4fea2f9f0681ef78 (patch) | |
tree | eb1c285d902d0723ab190a2a0108fdd7ce772f70 /source/blender/makesdna | |
parent | 7f219137cf13003143f5d671b6c59bc500b53f75 (diff) |
Optional clumping noise feature for simulating twisted hair strands.
This adds another level of clumping on child hairs. When enabled, child
hairs chose a secondary clumping target using a Voronoi pattern. This
adds visual detail on a smaller scale, which is useful particularly when
the number of parents is relatively small.
Natural fibres behave in a similar way when they become sticky and
intertwined. Hairs close to each other form a first twisted strand, then
combine into larger strands. Similar features can be found in ropes:
http://en.wikipedia.org/wiki/Hair_twists
http://en.wikipedia.org/wiki/Rope
Conflicts:
source/blender/blenloader/intern/versioning_270.c
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_particle_types.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index b5ba7fa1649..8bae57a7cbd 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -208,6 +208,8 @@ typedef struct ParticleSettings { /* length */ float randlength; /* children */ + int child_flag; + int pad3; int child_nbr, ren_child_nbr; float parents, childsize, childrandsize; float childrad, childflat; @@ -235,10 +237,10 @@ typedef struct ParticleSettings { int keyed_loops; struct CurveMapping *clumpcurve; struct CurveMapping *roughcurve; + float clump_noise_size; /* hair dynamics */ float bending_random; - int pad3; struct MTex *mtex[18]; /* MAX_MTEX */ @@ -421,6 +423,11 @@ typedef enum eParticleDrawFlag { #define PART_KINK_WAVE 3 #define PART_KINK_BRAID 4 +/* part->kink_flag */ +typedef enum eParticleChildFlag { + PART_CHILD_USE_CLUMP_NOISE = 1, +} eParticleChildFlag; + /* part->draw_col */ #define PART_DRAW_COL_NONE 0 #define PART_DRAW_COL_MAT 1 |