Commit: 7ea29d69dfa79258c9f4c4e92b5c469606ff90dd
Author: Bastien Montagne
Date:   Sat Mar 26 17:41:56 2016 +0100
Branches: blender-v2.77-release
https://developer.blender.org/rB7ea29d69dfa79258c9f4c4e92b5c469606ff90dd

Fix T47935: Hair particles; The display percentage parameter breaks after a 
render is done.

Follow same logic in `psys_render_restore` as in `psys_render_set` - if hair and
display percentage is not 100%, we have to recompute particles...

With regular 'emitter' particles just hiding some is fine (though using random 
here
will not give a precise proportion...).

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

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

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

diff --git a/source/blender/blenkernel/intern/particle.c 
b/source/blender/blenkernel/intern/particle.c
index d02308b..364bdbb 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -720,13 +720,19 @@ void psys_render_restore(Object *ob, ParticleSystem *psys)
        disp = psys_get_current_display_percentage(psys);
 
        if (disp != render_disp) {
-               PARTICLE_P;
+               /* Hair can and has to be recalculated if everything isn't 
displayed. */
+               if (psys->part->type == PART_HAIR) {
+                       psys->recalc |= PSYS_RECALC_RESET;
+               }
+               else {
+                       PARTICLE_P;
 
-               LOOP_PARTICLES {
-                       if (psys_frand(psys, p) > disp)
-                               pa->flag |= PARS_NO_DISP;
-                       else
-                               pa->flag &= ~PARS_NO_DISP;
+                       LOOP_PARTICLES {
+                               if (psys_frand(psys, p) > disp)
+                                       pa->flag |= PARS_NO_DISP;
+                               else
+                                       pa->flag &= ~PARS_NO_DISP;
+                       }
                }
        }
 }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to