Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Tönne <lukas.toenne@gmail.com>2014-03-04 14:22:56 +0400
committerLukas Tönne <lukas.toenne@gmail.com>2014-03-04 14:22:56 +0400
commita31571481be6ea74c93cf91bb330a5f511bccfc0 (patch)
treed7cf5e30c907abdd6327a79f0dbf2d4faab9739e
parentdad96000048cbc30e0d21c567668aaa32dece4dd (diff)
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.
-rw-r--r--source/blender/render/intern/source/convertblender.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index 8844fae904b..a9e83e65455 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);
}