[Bf-blender-cvs] [a315714] master: Fix for regression noted in T38942: Blender Internal rendering can lead to wrong obmats of nested dupli objects.

Lukas Tönne noreply at git.blender.org
Tue Mar 4 11:29:32 CET 2014


Commit: a31571481be6ea74c93cf91bb330a5f511bccfc0
Author: Lukas Tönne
Date:   Tue Mar 4 11:22:56 2014 +0100
https://developer.blender.org/rBa31571481be6ea74c93cf91bb330a5f511bccfc0

Fix for regression noted in T38942: Blender Internal rendering can lead
to wrong obmats of nested dupli objects.

Restoring obmats after BI nested dupli object rendering has to happen
in reverse order, so higher level omats are applied last.

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

M	source/blender/render/intern/source/convertblender.c

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

diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index 8844fae..a9e83e6 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -5108,8 +5108,11 @@ static void database_init_objects(Render *re, unsigned int renderlay, int nolamp
 					if (re->test_break(re->tbh)) break;
 				}
 				
-				/* restore obmats */
-				for (dob= duplilist->first, i = 0; dob; dob= dob->next, ++i) {
+				/* restore obmats
+				 * NOTE: this has to happen in reverse order, since nested
+				 * dupli objects can repeatedly override the obmat
+				 */
+				for (dob= duplilist->last, i = totdob - 1; dob; dob= dob->prev, --i) {
 					copy_m4_m4(dob->ob->obmat, duplilist_extra[i].omat);
 				}




More information about the Bf-blender-cvs mailing list