diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-04-27 15:43:01 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-04-27 15:46:15 +0300 |
commit | e1ed47eb5b6ec3f1501bed0b34bfa7894acee022 (patch) | |
tree | ba514f3a9df200af40042faf5e1c833611d51e9a | |
parent | 9dadc8f599da94c3120f24f198c606d011a5dda2 (diff) |
Fix T44512: Cycles fails normal bake /w scale flip
-rw-r--r-- | source/blender/editors/object/object_bake_api.c | 6 | ||||
-rw-r--r-- | source/blender/render/extern/include/RE_bake.h | 2 | ||||
-rw-r--r-- | source/blender/render/intern/source/bake_api.c | 2 |
3 files changed, 3 insertions, 7 deletions
diff --git a/source/blender/editors/object/object_bake_api.c b/source/blender/editors/object/object_bake_api.c index 578335a385b..b382fbafcfd 100644 --- a/source/blender/editors/object/object_bake_api.c +++ b/source/blender/editors/object/object_bake_api.c @@ -775,11 +775,7 @@ static int bake( copy_m4_m4(highpoly[i].obmat, highpoly[i].ob->obmat); invert_m4_m4(highpoly[i].imat, highpoly[i].obmat); - /* rotation */ - normalize_m4_m4(highpoly[i].rotmat, highpoly[i].imat); - zero_v3(highpoly[i].rotmat[3]); - if (is_negative_m4(highpoly[i].rotmat)) - negate_mat3_m4(highpoly[i].rotmat); + highpoly[i].is_flip_object = is_negative_m4(highpoly[i].ob->obmat); i++; } diff --git a/source/blender/render/extern/include/RE_bake.h b/source/blender/render/extern/include/RE_bake.h index e8a8986714d..0750ea1aa28 100644 --- a/source/blender/render/extern/include/RE_bake.h +++ b/source/blender/render/extern/include/RE_bake.h @@ -61,10 +61,10 @@ typedef struct BakeHighPolyData { struct ModifierData *tri_mod; struct Mesh *me; char restrict_flag; + bool is_flip_object; float obmat[4][4]; float imat[4][4]; - float rotmat[4][4]; } BakeHighPolyData; /* external_engine.c */ diff --git a/source/blender/render/intern/source/bake_api.c b/source/blender/render/intern/source/bake_api.c index 1f7555bc5c5..bc5db5b9862 100644 --- a/source/blender/render/intern/source/bake_api.c +++ b/source/blender/render/intern/source/bake_api.c @@ -300,7 +300,7 @@ static bool cast_ray_highpoly( mul_v3_m4v3(co_high, highpoly[i].imat, co); /* rotates */ - mul_v3_m4v3(dir_high, highpoly[i].rotmat, dir); + mul_v3_mat3_m4v3(dir_high, highpoly[i].imat, dir); normalize_v3(dir_high); /* cast ray */ |