diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-03-31 18:46:22 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-03-31 18:46:22 +0300 |
commit | 185d00258666eba96a8c838964c9e17bd898d8a1 (patch) | |
tree | ece028e2af68d71baa0c255d95dba186fbac8b10 /intern/cycles | |
parent | 6cc04b408c8ad8338dcdd98d620493a86735be44 (diff) |
Cycles: Fix too many objects being considered an instance
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/render/object.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index ae3779c2b2c..42bb665cb9f 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -512,7 +512,12 @@ void ObjectManager::apply_static_transforms(DeviceScene *dscene, Scene *scene, u /* apply transforms for objects with single user meshes */ foreach(Object *object, scene->objects) { - if((mesh_users[object->mesh] == 1 && !object->mesh->is_instanced()) && + /* Annoying feedback loop here: we can't use is_instanced() because + * it'll use uninitialized transform_applied flag. + * + * Could be solved by moving reference counter to Mesh. + */ + if((mesh_users[object->mesh] == 1 && !object->mesh->has_surface_bssrdf) && object->mesh->displacement_method == Mesh::DISPLACE_BUMP) { if(!(motion_blur && object->use_motion)) { |