diff options
author | Mai Lavelle <mai.lavelle@gmail.com> | 2016-08-28 00:57:36 +0300 |
---|---|---|
committer | Mai Lavelle <mai.lavelle@gmail.com> | 2016-08-28 01:07:04 +0300 |
commit | a5261e06a309982a47e207faf59194c59408dbad (patch) | |
tree | ccd576674ff3ab32132ab7d262855b3a2e9fa32c /intern/cycles/render/object.cpp | |
parent | 4ebfb700ba846fea5a50df99e409e25b86f711e2 (diff) |
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.
Diffstat (limited to 'intern/cycles/render/object.cpp')
-rw-r--r-- | intern/cycles/render/object.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
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) { |