[Bf-blender-cvs] [e1ed47e] master: Fix T44512: Cycles fails normal bake /w scale flip

Campbell Barton noreply at git.blender.org
Mon Apr 27 14:49:15 CEST 2015


Commit: e1ed47eb5b6ec3f1501bed0b34bfa7894acee022
Author: Campbell Barton
Date:   Mon Apr 27 22:43:01 2015 +1000
Branches: master
https://developer.blender.org/rBe1ed47eb5b6ec3f1501bed0b34bfa7894acee022

Fix T44512: Cycles fails normal bake /w scale flip

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

M	source/blender/editors/object/object_bake_api.c
M	source/blender/render/extern/include/RE_bake.h
M	source/blender/render/intern/source/bake_api.c

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

diff --git a/source/blender/editors/object/object_bake_api.c b/source/blender/editors/object/object_bake_api.c
index 578335a..b382fba 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 e8a8986..0750ea1 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 1f7555b..bc5db5b 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 */




More information about the Bf-blender-cvs mailing list