diff options
author | Janne Karhu <jhkarh@gmail.com> | 2011-02-12 17:38:34 +0300 |
---|---|---|
committer | Janne Karhu <jhkarh@gmail.com> | 2011-02-12 17:38:34 +0300 |
commit | fafbd9d71b95776d1c7583476de74fccefab7f10 (patch) | |
tree | 838e0fbc2e53c0700a87ebc1fdf4798837ffda3e /source/blender/makesdna/DNA_particle_types.h | |
parent | c8c86aa6a12a253680aa266ce1c5d51b1b39005a (diff) |
Particles todo item: particle textures
* Effecting particle properties with textures was possible in 2.49,
but not in 2.5 anymore.
* Now particles have their own textures (available in texture panel
for objects with particle systems), which are totally separate from
the material textures.
* Currently a basic set of particle properties is available for
texture control. Some others could still be added, but the whole
system is not intended as an "change anything with a texture" as
this kind of functionality will be provided with node particles in
the future much better.
* Combined with the previously added "particle texture coordinates"
this new functionality also solves the problem of animating particle
properties through the particle lifetime nicely.
* Currently the textures only use the intensity of the texture in
"multiply" blending mode, so in order for the textures to effect
a particle parameter there has to be a non-zero value defined for
the parameter in the particle settings. Other blend modes can be
added later if they're considered useful enough.
Diffstat (limited to 'source/blender/makesdna/DNA_particle_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_particle_types.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index e26414a0d72..1a0e6a3db7d 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -142,7 +142,7 @@ typedef struct ParticleSettings { struct EffectorWeights *effector_weights; int flag; - short type, from, distr; + short type, from, distr, texact; /* physics modes */ short phystype, rotmode, avemode, reactevent; short draw, draw_as, draw_size, childtype; @@ -155,7 +155,7 @@ typedef struct ParticleSettings { short adapt_angle, adapt_pix; short disp, omat, interpolation, rotfrom, integrator; - short kink, kink_axis; + short kink, kink_axis, rt2; /* billboards */ short bb_align, bb_uv_split, bb_anim, bb_split_offset; @@ -169,7 +169,7 @@ typedef struct ParticleSettings { /* general values */ float sta, end, lifetime, randlife; float timetweak, jitfac, eff_hair, grid_rand; - int totpart, userjit, grid_res, rt; + int totpart, userjit, grid_res; /* initial velocity factors */ float normfac, obfac, randfac, partfac, tanfac, tanphase, reactfac; @@ -208,6 +208,8 @@ typedef struct ParticleSettings { /* keyed particles */ int keyed_loops; + struct MTex *mtex[18]; /* MAX_MTEX */ + struct Group *dup_group; struct ListBase dupliweights; struct Group *eff_group; // deprecated @@ -508,4 +510,25 @@ typedef struct ParticleSystem{ /* note, make sure all (runtime) are NULL's in #define PTARGET_MODE_FRIEND 1 #define PTARGET_MODE_ENEMY 2 +/* mapto */ +/* init */ +#define PAMAP_INIT 15 +#define PAMAP_TIME (1<<0) /* emission time */ +#define PAMAP_LIFE (1<<1) /* life time */ +#define PAMAP_DENS (1<<2) /* density */ +#define PAMAP_SIZE (1<<3) /* physical size */ +/* reset */ +#define PAMAP_IVEL (1<<5) /* initial velocity */ +/* physics */ +#define PAMAP_PHYSICS 3136 +#define PAMAP_FIELD (1<<6) /* force fields */ +#define PAMAP_GRAVITY (1<<10) +#define PAMAP_DAMP (1<<11) +/* children */ +#define PAMAP_CHILD 912 +#define PAMAP_CLUMP (1<<7) +#define PAMAP_KINK (1<<8) +#define PAMAP_ROUGH (1<<9) +#define PAMAP_LENGTH (1<<4) + #endif |