diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-12-23 08:04:03 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-12-23 08:04:03 +0300 |
commit | 9282d305bdc56522543129436db1e8a5d19cf39f (patch) | |
tree | b6d0cdcc7dd3f4113cf9e4f9813c40f44d29746e /source/blender/render/intern/source/convertblender.c | |
parent | de724a258eda45d1fed2b2176006c3b2df8abea2 (diff) | |
parent | 646a96bf8edc211a06f3df652101c265ee166e8d (diff) |
Merge branch 'master' into texture_nodes_refactortexture_nodes_refactor
Conflicts:
source/blender/nodes/texture/nodes/node_texture_math.c
Diffstat (limited to 'source/blender/render/intern/source/convertblender.c')
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index deee60dbd1f..6b888dbf11c 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -82,9 +82,7 @@ #include "BKE_particle.h" #include "BKE_scene.h" - #include "PIL_time.h" -#include "IMB_imbuf_types.h" #include "envmap.h" #include "occlusion.h" @@ -103,8 +101,6 @@ #include "zbuf.h" #include "sunsky.h" -#include "RE_render_ext.h" - /* 10 times larger than normal epsilon, test it on default nurbs sphere with ray_transp (for quad detection) */ /* or for checking vertex normal flips */ #define FLT_EPSILON10 1.19209290e-06F @@ -1305,7 +1301,6 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem int totchild=0, step_nbr; int seed, path_nbr=0, orco1=0, num; int totface; - const char **uv_name = NULL; const int *index_mf_to_mpoly = NULL; const int *index_mp_to_orig = NULL; @@ -1427,8 +1422,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem /* 2.5 setup matrices */ mul_m4_m4m4(mat, re->viewmat, ob->obmat); invert_m4_m4(ob->imat, mat); /* need to be that way, for imat texture */ - copy_m3_m4(nmat, ob->imat); - transpose_m3(nmat); + transpose_m3_m4(nmat, ob->imat); if (psys->flag & PSYS_USE_IMAT) { /* psys->imat is the original emitter's inverse matrix, ob->obmat is the duplicated object's matrix */ @@ -1855,9 +1849,6 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem if (sd.mcol) MEM_freeN(sd.mcol); - if (uv_name) - MEM_freeN(uv_name); - if (states) MEM_freeN(states); @@ -2652,8 +2643,7 @@ static void init_render_curve(Render *re, ObjectRen *obr, int timeoffset) negative_scale = is_negative_m4(mat); /* local object -> world space transform for normals */ - copy_m4_m4(nmat, mat); - transpose_m4(nmat); + transpose_m4_m4(nmat, mat); invert_m4(nmat); /* material array */ @@ -3917,7 +3907,15 @@ static bool is_object_hidden(Render *re, Object *ob) if (re->r.scemode & R_VIEWPORT_PREVIEW) { /* Mesh deform cages and so on mess up the preview. To avoid the problem, * viewport doesn't show mesh object if its draw type is bounding box or wireframe. + * Unless it's an active smoke domain! */ + ModifierData *md = NULL; + + if ((md = modifiers_findByType(ob, eModifierType_Smoke)) && + (modifier_isEnabled(re->scene, md, eModifierMode_Realtime))) + { + return false; + } return ELEM(ob->dt, OB_BOUNDBOX, OB_WIRE); } else { |