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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to