From a5261e06a309982a47e207faf59194c59408dbad Mon Sep 17 00:00:00 2001 From: Mai Lavelle Date: Sat, 27 Aug 2016 17:57:36 -0400 Subject: Fix T49167: Normals in wrong coordinate space when adaptive subdivision is used Meshes with Cycles subdivision were being transformed to world space leading to normals to sometimes be calculated in that space, while they should be in object space. Also caused dicing to happen at the wrong rate for scaled meshes. --- intern/cycles/render/object.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern/cycles/render') diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index 62076f3a865..db44327e24c 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -692,7 +692,7 @@ void ObjectManager::apply_static_transforms(DeviceScene *dscene, Scene *scene, u * Could be solved by moving reference counter to Mesh. */ if((mesh_users[object->mesh] == 1 && !object->mesh->has_surface_bssrdf) && - !object->mesh->has_true_displacement()) + !object->mesh->has_true_displacement() && object->mesh->subdivision_type == Mesh::SUBDIVISION_NONE) { if(!(motion_blur && object->use_motion)) { if(!object->mesh->transform_applied) { -- cgit v1.2.3