Fix particle child render resolution access not working outside of the render thread,
[blender.git] / source / blender / blenkernel / intern / particle.c
index 71854a93f4d8e27397dc0afbd46acfcb7885abe9..c01ea4e518df8f614bbca10dc8e7636467b1ee4c 100644 (file)
@@ -684,8 +684,6 @@ void psys_render_set(Object *ob, ParticleSystem *psys, float viewmat[4][4], floa
        ParticleRenderData *data;
        ParticleSystemModifierData *psmd = psys_get_modifier(ob, psys);
 
-       if (G.is_rendering == FALSE)
-               return;
        if (psys->renderdata)
                return;
 
@@ -2384,7 +2382,7 @@ void psys_find_parents(ParticleSimulationData *sim)
        int from = PART_FROM_FACE;
        totparent = (int)(totchild * part->parents * 0.3f);
 
-       if (G.is_rendering && part->child_nbr && part->ren_child_nbr)
+       if ((sim->psys->renderdata || G.is_rendering) && part->child_nbr && part->ren_child_nbr)
                totparent *= (float)part->child_nbr / (float)part->ren_child_nbr;
 
        tree = BLI_kdtree_new(totparent);
@@ -2461,7 +2459,7 @@ static int psys_threads_init_path(ParticleThread *threads, Scene *scene, float c
        if (totchild && part->childtype == PART_CHILD_FACES) {
                totparent = (int)(totchild * part->parents * 0.3f);
                
-               if (G.is_rendering && part->child_nbr && part->ren_child_nbr)
+               if ((psys->renderdata || G.is_rendering) && part->child_nbr && part->ren_child_nbr)
                        totparent *= (float)part->child_nbr / (float)part->ren_child_nbr;
 
                /* part->parents could still be 0 so we can't test with totparent */