diff options
-rw-r--r-- | source/blender/blenkernel/intern/particle.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index e8fcb5c50b1..5a6f1dae53e 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -3427,6 +3427,11 @@ static int get_particle_uv(DerivedMesh *dm, ParticleData *pa, int face_index, co #define CLAMP_PARTICLE_TEXTURE_POS(type, pvalue) \ if (event & type) { \ + CLAMP(pvalue, 0.0f, 1.0f); \ + } (void)0 + +#define CLAMP_WARP_PARTICLE_TEXTURE_POS(type, pvalue) \ + if (event & type) { \ if (pvalue < 0.0f) \ pvalue = 1.0f + pvalue; \ CLAMP(pvalue, 0.0f, 1.0f); \ @@ -3498,11 +3503,11 @@ static void get_cpa_texture(DerivedMesh *dm, ParticleSystem *psys, ParticleSetti } CLAMP_PARTICLE_TEXTURE_POS(PAMAP_LENGTH, ptex->length); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_CLUMP, ptex->clump); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_KINK_AMP, ptex->kink_amp); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_KINK_FREQ, ptex->kink_freq); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_ROUGH, ptex->rough1); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_DENS, ptex->exist); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_CLUMP, ptex->clump); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_KINK_AMP, ptex->kink_amp); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_KINK_FREQ, ptex->kink_freq); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_ROUGH, ptex->rough1); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_DENS, ptex->exist); } void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTexture *ptex, int event, float cfra) { @@ -3592,14 +3597,14 @@ void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTex } } - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_TIME, ptex->time); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_LIFE, ptex->life); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_DENS, ptex->exist); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_TIME, ptex->time); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_LIFE, ptex->life); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_DENS, ptex->exist); CLAMP_PARTICLE_TEXTURE_POS(PAMAP_SIZE, ptex->size); CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_IVEL, ptex->ivel); CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_FIELD, ptex->field); CLAMP_PARTICLE_TEXTURE_POSNEG(PAMAP_GRAVITY, ptex->gravity); - CLAMP_PARTICLE_TEXTURE_POS(PAMAP_DAMP, ptex->damp); + CLAMP_WARP_PARTICLE_TEXTURE_POS(PAMAP_DAMP, ptex->damp); CLAMP_PARTICLE_TEXTURE_POS(PAMAP_LENGTH, ptex->length); } /************************************************/ |