[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37103] trunk/blender/source/blender/ render/intern/source/pointdensity.c: Fix #27241: crash with point density texture when using particle age/velocity

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Jun 2 18:59:13 CEST 2011


Revision: 37103
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37103
Author:   blendix
Date:     2011-06-02 16:59:12 +0000 (Thu, 02 Jun 2011)
Log Message:
-----------
Fix #27241: crash with point density texture when using particle age/velocity
fallof for object vertices.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/pointdensity.c

Modified: trunk/blender/source/blender/render/intern/source/pointdensity.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pointdensity.c	2011-06-02 15:21:47 UTC (rev 37102)
+++ trunk/blender/source/blender/render/intern/source/pointdensity.c	2011-06-02 16:59:12 UTC (rev 37103)
@@ -362,10 +362,18 @@
 		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;




More information about the Bf-blender-cvs mailing list