[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17161] branches/sim_physics/source/ blender: Point Density:

Matt Ebb matt at mke3.net
Wed Oct 22 03:31:49 CEST 2008


Revision: 17161
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17161
Author:   broken
Date:     2008-10-22 03:31:46 +0200 (Wed, 22 Oct 2008)

Log Message:
-----------
Point Density:

Replaced 'Sharp' falloff with 'Soft'. This falloff type has 
a variable softness, and can get some quite smooth results. 
It can be useful to get smooth transitions in density when 
you're using particles on a large scale:

http://mke3.net/blender/devel/rendering/volumetrics/pd_falloff_soft.jpg

Also removed 'angular velocity' turbulence source - it
wasn't doing anything useful atm

Modified Paths:
--------------
    branches/sim_physics/source/blender/blenkernel/intern/texture.c
    branches/sim_physics/source/blender/blenloader/intern/readfile.c
    branches/sim_physics/source/blender/makesdna/DNA_texture_types.h
    branches/sim_physics/source/blender/render/intern/source/pointdensity.c
    branches/sim_physics/source/blender/src/buttons_shading.c

Modified: branches/sim_physics/source/blender/blenkernel/intern/texture.c
===================================================================
--- branches/sim_physics/source/blender/blenkernel/intern/texture.c	2008-10-22 00:26:19 UTC (rev 17160)
+++ branches/sim_physics/source/blender/blenkernel/intern/texture.c	2008-10-22 01:31:46 UTC (rev 17161)
@@ -875,6 +875,7 @@
 	pd= MEM_callocN(sizeof(PointDensity), "pointdensity");
 	pd->radius = 0.3f;
 	pd->falloff_type = TEX_PD_FALLOFF_STD;
+	pd->falloff_softness = 2.0;
 	pd->source = TEX_PD_PSYS;
 	pd->point_tree = NULL;
 	pd->point_data = NULL;

Modified: branches/sim_physics/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/sim_physics/source/blender/blenloader/intern/readfile.c	2008-10-22 00:26:19 UTC (rev 17160)
+++ branches/sim_physics/source/blender/blenloader/intern/readfile.c	2008-10-22 01:31:46 UTC (rev 17161)
@@ -7908,6 +7908,8 @@
 				tex->pd->noise_fac = 1.0f;
 				tex->pd->noise_influence = TEX_PD_NOISE_STATIC;
 			}
+			if (tex->pd->falloff_softness < 1.0f)
+				tex->pd->falloff_softness = 2.0f;
 		}
 		
 	}

Modified: branches/sim_physics/source/blender/makesdna/DNA_texture_types.h
===================================================================
--- branches/sim_physics/source/blender/makesdna/DNA_texture_types.h	2008-10-22 00:26:19 UTC (rev 17160)
+++ branches/sim_physics/source/blender/makesdna/DNA_texture_types.h	2008-10-22 01:31:46 UTC (rev 17161)
@@ -131,9 +131,10 @@
 	short flag;
 
 	short falloff_type;
+	float falloff_softness;
 	float radius;
 	short source;
-	short pdpad[3];
+	short pdpad;
 
 	struct Object *object;	/* for 'Object' or 'Particle system' type - source object */
 	short psys_cache_space;		/* cache points in worldspace, object space, ... ? */
@@ -425,7 +426,7 @@
 /* falloff_type */
 #define TEX_PD_FALLOFF_STD		0
 #define TEX_PD_FALLOFF_SMOOTH	1
-#define TEX_PD_FALLOFF_SHARP	2
+#define TEX_PD_FALLOFF_SOFT		2
 #define TEX_PD_FALLOFF_CONSTANT	3
 #define TEX_PD_FALLOFF_ROOT		4
 
@@ -441,8 +442,7 @@
 /* noise_influence */
 #define TEX_PD_NOISE_STATIC		0
 #define TEX_PD_NOISE_VEL		1
-#define TEX_PD_NOISE_ANGVEL		2
-#define TEX_PD_NOISE_TIME		3
+#define TEX_PD_NOISE_TIME		2
 
 #endif
 

Modified: branches/sim_physics/source/blender/render/intern/source/pointdensity.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/pointdensity.c	2008-10-22 00:26:19 UTC (rev 17160)
+++ branches/sim_physics/source/blender/render/intern/source/pointdensity.c	2008-10-22 01:31:46 UTC (rev 17161)
@@ -107,10 +107,6 @@
 				pd->point_data[i*3 + 0] = state.vel[0];
 				pd->point_data[i*3 + 1] = state.vel[1];
 				pd->point_data[i*3 + 2] = state.vel[2];
-			} else if (pd->noise_influence == TEX_PD_NOISE_ANGVEL) {
-				pd->point_data[i*3 + 0] = state.ave[0];
-				pd->point_data[i*3 + 1] = state.ave[1];
-				pd->point_data[i*3 + 2] = state.ave[2];
 			}
 		}
 	}
@@ -252,6 +248,7 @@
     float squared_radius;
     float *point_data;
 	float *vec;
+	float softness;
     short falloff_type;   
 } PointDensityRangeData;
 
@@ -265,8 +262,8 @@
 		density = dist;
 	else if (pdr->falloff_type == TEX_PD_FALLOFF_SMOOTH)
 		density = 3.0f*dist*dist - 2.0f*dist*dist*dist;
-	else if (pdr->falloff_type == TEX_PD_FALLOFF_SHARP)
-		density = dist*dist;
+	else if (pdr->falloff_type == TEX_PD_FALLOFF_SOFT)
+		density = pow(dist, pdr->softness);
 	else if (pdr->falloff_type == TEX_PD_FALLOFF_CONSTANT)
 		density = pdr->squared_radius;
 	else if (pdr->falloff_type == TEX_PD_FALLOFF_ROOT)
@@ -302,6 +299,7 @@
 	pdr.point_data = pd->point_data;
 	pdr.falloff_type = pd->falloff_type;
 	pdr.vec = vec;
+	pdr.softness = pd->falloff_softness;
 	noise_fac = pd->noise_fac * 0.5f;	/* better default */
 	
 	if (pd->flag & TEX_PD_TURBULENCE) {
@@ -329,13 +327,16 @@
 
 	texres->tin = density;
 
-	//texres->tr = vec[0];
-	//texres->tg = vec[1];
-	//texres->tb = vec[2];
 	
+	
+	BRICONT;
+	
 	return TEX_INT;
 	
 	/*
+	texres->tr = vec[0];
+	texres->tg = vec[1];
+	texres->tb = vec[2];
 	BRICONTRGB;
 	
 	texres->ta = 1.0;

Modified: branches/sim_physics/source/blender/src/buttons_shading.c
===================================================================
--- branches/sim_physics/source/blender/src/buttons_shading.c	2008-10-22 00:26:19 UTC (rev 17160)
+++ branches/sim_physics/source/blender/src/buttons_shading.c	2008-10-22 01:31:46 UTC (rev 17161)
@@ -738,7 +738,7 @@
 	short yco=PANEL_YMAX;
 	
 	block= uiNewBlock(&curarea->uiblocks, "texture_panel_pointdensity", UI_EMBOSS, UI_HELV, curarea->win);
-	if(uiNewPanel(curarea, block, "Point Density", "Texture", PANELX, PANELY, PANELW, PANELH)==0) return;
+	if(uiNewPanel(curarea, block, "Point Density", "Texture", PANELX, PANELY, PANELW, PANELH+25)==0) return;
 	uiSetButLock(tex->id.lib!=0, ERROR_LIBDATA_MESSAGE);
 	
 	if(tex->pd==NULL) {
@@ -758,8 +758,14 @@
 		
 		uiDefBut(block, LABEL, B_NOP, "Falloff:",
 			X2CLM1, yco-=BUTH, BUTW2, BUTH, 0, 0, 0, 0, 0, "");	
-		uiDefButS(block, MENU, B_REDR, "Standard %x0|Smooth %x1|Sharp %x2|Constant %x3|Root %x4",
+		uiBlockBeginAlign(block);
+		uiDefButS(block, MENU, B_REDR, "Standard %x0|Smooth %x1|Soft %x2|Constant %x3|Root %x4",
 			X2CLM1, yco-=BUTH, BUTW2, BUTH, &pd->falloff_type, 0.0, 0.0, 0, 0, "Falloff type");
+		if (pd->falloff_type == TEX_PD_FALLOFF_SOFT) {
+			uiDefButF(block, NUM, B_REDR, "Softness: ",
+				X2CLM1, yco-=BUTH, BUTW2, BUTH, &(pd->falloff_softness), 1.0, 1024.0, 10, 2, "The intensity of the falloff");
+		}
+		uiBlockEndAlign(block);
 		
 		yco -= YSPACE;
 		
@@ -782,7 +788,7 @@
 			yco -= YSPACE;
 
 			if (pd->source == TEX_PD_PSYS) {
-				uiDefButS(block, MENU, B_REDR, "Noise Influence %t|Static %x0|Velocity %x1|Angular Velocity %x2",
+				uiDefButS(block, MENU, B_REDR, "Noise Influence %t|Static %x0|Velocity %x1",
 					X2CLM1, yco-=BUTH, BUTW2, BUTH, &(pd->noise_influence), 0.0, 0.0, 0, 0, "Noise Influence");
 			}
 		}





More information about the Bf-blender-cvs mailing list