[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32970] branches/particles-2010/source/ blender/nodes/intern/SIM_nodes/SIM_random.c: Corrected scaling for gaussian and triangular distributions in the random node .
Lukas Toenne
lukas.toenne at googlemail.com
Tue Nov 9 18:27:24 CET 2010
Revision: 32970
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32970
Author: lukastoenne
Date: 2010-11-09 18:27:24 +0100 (Tue, 09 Nov 2010)
Log Message:
-----------
Corrected scaling for gaussian and triangular distributions in the random node.
Modified Paths:
--------------
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_random.c
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_random.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_random.c 2010-11-09 17:07:17 UTC (rev 32969)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_random.c 2010-11-09 17:27:24 UTC (rev 32970)
@@ -66,7 +66,7 @@
BLI_srandom(SIM_INPUT_INT(0, global_id) + BLI_rand());
switch (node->base->custom1) {
case SIM_RANDOM_UNIFORM:
- r = BLI_frand();
+ r = 2.0f*BLI_frand() - 1.0f;
break;
case SIM_RANDOM_GAUSSIAN:
/* Box-Muller method */
@@ -76,10 +76,11 @@
break;
case SIM_RANDOM_TRIANGULAR:
u1 = BLI_frand();
- r = 1.0f - sqrt(1.0f - u1);
+ u2 = BLI_frand();
+ r = (u2 < 0.5f ? 1.0f - sqrt(1.0f - u1) : sqrt(1.0f - u1) - 1.0f);
break;
}
- *SIM_OUTPUT_FLOAT(0, global_id) = SIM_INPUT_FLOAT(2, global_id) + (2.0f*r - 1.0f) * SIM_INPUT_FLOAT(3, global_id);
+ *SIM_OUTPUT_FLOAT(0, global_id) = SIM_INPUT_FLOAT(2, global_id) + r * SIM_INPUT_FLOAT(3, global_id);
}
static void enqueue(SimExecData *execdata, SimNodeStack *node, SimDataContext *self)
More information about the Bf-blender-cvs
mailing list