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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-11-12 18:29:52 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-11-12 18:29:52 +0400
commitfc42a6185ddeb6a24ec92287dfa7b89beb059716 (patch)
treecdd34b01d77f6c104ed38c30719426c11c01a96e /intern/cycles/render/object.cpp
parent817b6cb9a8990483a2bfce7a11e690c829e75ddc (diff)
Cycles:
* Fix object scaling update issue with interactive rendering + static BVH. * Fix negative scaling issue with static BVH. * Fix #29217: excessive fireflies in first sample.
Diffstat (limited to 'intern/cycles/render/object.cpp')
-rw-r--r--intern/cycles/render/object.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp
index b91531ac462..3a9f0add735 100644
--- a/intern/cycles/render/object.cpp
+++ b/intern/cycles/render/object.cpp
@@ -60,6 +60,11 @@ void Object::apply_transform()
Transform ntfm = transform_transpose(transform_inverse(tfm));
+ /* we keep normals pointing in same direction on negative scale, notify
+ mesh about this in it (re)calculates normals */
+ if(transform_negative_scale(tfm))
+ mesh->transform_negative_scaled = true;
+
if(attr_fN) {
float3 *fN = attr_fN->data_float3();
@@ -232,8 +237,10 @@ void ObjectManager::apply_static_transforms(Scene *scene, Progress& progress)
/* apply transforms for objects with single user meshes */
foreach(Object *object, scene->objects) {
if(mesh_users[object->mesh] == 1) {
- object->apply_transform();
- object->mesh->transform_applied = true;
+ if(!object->mesh->transform_applied) {
+ object->apply_transform();
+ object->mesh->transform_applied = true;
+ }
if(progress.get_cancel()) return;
}