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/blenkernel/BKE_particle.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/blenkernel/BKE_particle.h')
-rw-r--r-- | source/blender/blenkernel/BKE_particle.h | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index 3f7523d5264..5c72973a0da 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -80,20 +80,10 @@ typedef struct ParticleSimulationData { struct ListBase *colliders; } ParticleSimulationData; -//typedef struct ParticleReactEvent { -// struct ParticleReactEvent *next, *prev; -// int event, pa_num; -// Object *ob; -// struct ParticleSystem *psys; -// struct ParticleKey state; -// -// float time, size; -//}ParticleReactEvent; - typedef struct ParticleTexture{ float ivel; /* used in reset */ float time, life, exist, size; /* used in init */ - float pvel[3]; /* used in physics */ + float damp, gravity, field; /* used in physics */ float length, clump, kink, effector;/* used in path caching */ float rough1, rough2, roughe; /* used in path caching */ } ParticleTexture; @@ -291,7 +281,7 @@ float psys_get_dietime_from_cache(struct PointCache *cache, int index); void psys_free_pdd(struct ParticleSystem *psys); float *psys_cache_vgroup(struct DerivedMesh *dm, struct ParticleSystem *psys, int vgroup); -void psys_get_texture(struct ParticleSimulationData *sim, struct Material *ma, struct ParticleData *pa, struct ParticleTexture *ptex, int event); +void psys_get_texture(struct ParticleSimulationData *sim, struct ParticleData *pa, struct ParticleTexture *ptex, int event, float cfra); void psys_interpolate_face(struct MVert *mvert, struct MFace *mface, struct MTFace *tface, float (*orcodata)[3], float *uv, float *vec, float *nor, float *utan, float *vtan, float *orco, float *ornor); float psys_particle_value_from_verts(struct DerivedMesh *dm, short from, struct ParticleData *pa, float *values); void psys_get_from_key(struct ParticleKey *key, float *loc, float *vel, float *rot, float *time); |