[Bf-blender-cvs] [a0a6cb1] master: Fix unstable particle jittered distribution.

Lukas Tönne noreply at git.blender.org
Fri Mar 13 13:08:04 CET 2015


Commit: a0a6cb129e9df46e80dec891b535992e773901af
Author: Lukas Tönne
Date:   Fri Mar 13 13:06:40 2015 +0100
Branches: master
https://developer.blender.org/rBa0a6cb129e9df46e80dec891b535992e773901af

Fix unstable particle jittered distribution.

This was never working for threaded distribution.

===================================================================

M	source/blender/blenkernel/intern/particle_distribute.c

===================================================================

diff --git a/source/blender/blenkernel/intern/particle_distribute.c b/source/blender/blenkernel/intern/particle_distribute.c
index 6cc42e8..245c243 100644
--- a/source/blender/blenkernel/intern/particle_distribute.c
+++ b/source/blender/blenkernel/intern/particle_distribute.c
@@ -467,10 +467,9 @@ static void distribute_from_faces_exec(ParticleTask *thread, ParticleData *pa, i
 					psys_uv_to_w(1.0f / 3.0f, 1.0f / 3.0f, mface->v4, pa->fuv);
 			}
 			else {
-				ctx->jitoff[i] = fmod(ctx->jitoff[i],(float)ctx->jitlevel);
-				if (!isnan(ctx->jitoff[i])) {
-					psys_uv_to_w(ctx->jit[2*(int)ctx->jitoff[i]], ctx->jit[2*(int)ctx->jitoff[i]+1], mface->v4, pa->fuv);
-					ctx->jitoff[i]++;
+				float offset = fmod(ctx->jitoff[i] + (float)p, (float)ctx->jitlevel);
+				if (!isnan(offset)) {
+					psys_uv_to_w(ctx->jit[2*(int)offset], ctx->jit[2*(int)offset+1], mface->v4, pa->fuv);
 				}
 			}
 			break;
@@ -512,10 +511,9 @@ static void distribute_from_volume_exec(ParticleTask *thread, ParticleData *pa,
 					psys_uv_to_w(1.0f / 3.0f, 1.0f / 3.0f, mface->v4, pa->fuv);
 			}
 			else {
-				ctx->jitoff[i] = fmod(ctx->jitoff[i],(float)ctx->jitlevel);
-				if (!isnan(ctx->jitoff[i])) {
-					psys_uv_to_w(ctx->jit[2*(int)ctx->jitoff[i]], ctx->jit[2*(int)ctx->jitoff[i]+1], mface->v4, pa->fuv);
-					ctx->jitoff[i]++;
+				float offset = fmod(ctx->jitoff[i] + (float)p, (float)ctx->jitlevel);
+				if (!isnan(offset)) {
+					psys_uv_to_w(ctx->jit[2*(int)offset], ctx->jit[2*(int)offset+1], mface->v4, pa->fuv);
 				}
 			}
 			break;




More information about the Bf-blender-cvs mailing list