Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/render/intern/source/pointdensity.c')
-rw-r--r--source/blender/render/intern/source/pointdensity.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/render/intern/source/pointdensity.c b/source/blender/render/intern/source/pointdensity.c
index d3d3e4d261c..b45528b96d9 100644
--- a/source/blender/render/intern/source/pointdensity.c
+++ b/source/blender/render/intern/source/pointdensity.c
@@ -362,10 +362,18 @@ static void accum_density(void *userdata, int index, float squared_dist)
density = pdr->squared_radius;
else if (pdr->falloff_type == TEX_PD_FALLOFF_ROOT)
density = sqrt(dist);
- else if (pdr->falloff_type == TEX_PD_FALLOFF_PARTICLE_AGE)
- density = dist*MIN2(pdr->point_data[pdr->offset + index], 1.0f);
- else if (pdr->falloff_type == TEX_PD_FALLOFF_PARTICLE_VEL)
- density = dist*len_v3(pdr->point_data + index*3)*pdr->velscale;
+ else if (pdr->falloff_type == TEX_PD_FALLOFF_PARTICLE_AGE) {
+ if (pdr->point_data_used & POINT_DATA_LIFE)
+ density = dist*MIN2(pdr->point_data[pdr->offset + index], 1.0f);
+ else
+ density = dist;
+ }
+ else if (pdr->falloff_type == TEX_PD_FALLOFF_PARTICLE_VEL) {
+ if (pdr->point_data_used & POINT_DATA_VEL)
+ density = dist*len_v3(pdr->point_data + index*3)*pdr->velscale;
+ else
+ density = dist;
+ }
if (pdr->density_curve && dist != 0.0f) {
density = curvemapping_evaluateF(pdr->density_curve, 0, density/dist)*dist;