Commit: 26b08d47fda25069930a527aeb7356896ebca2dc Author: Kévin Dietrich Date: Wed Nov 11 08:41:36 2020 +0100 Branches: cycles_procedural_api https://developer.blender.org/rB26b08d47fda25069930a527aeb7356896ebca2dc
fix regression regarding missing BVH update =================================================================== M intern/cycles/render/geometry.h M intern/cycles/render/object.cpp =================================================================== diff --git a/intern/cycles/render/geometry.h b/intern/cycles/render/geometry.h index 07f7f144ad6..4d2684606f8 100644 --- a/intern/cycles/render/geometry.h +++ b/intern/cycles/render/geometry.h @@ -153,6 +153,11 @@ class Geometry : public Node { return geometry_type == HAIR; } + bool is_volume() const + { + return geometry_type == VOLUME; + } + /* Updates */ void tag_update(Scene *scene, bool rebuild); }; diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index 6fa10c9b495..e013114c42e 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -238,6 +238,20 @@ void Object::tag_update(Scene *scene) flag |= HOLDOUT_MODIFIED; } + if (tfm_is_modified()) { + /* tag the geometry as modified so the BVH is updated, but do not tag everything as modified */ + if (geometry) { + if (geometry->is_mesh() || geometry->is_volume()) { + Mesh *mesh = static_cast<Mesh *>(geometry); + mesh->tag_verts_modified(); + } + else if (geometry->is_hair()) { + Hair *hair = static_cast<Hair *>(geometry); + hair->tag_curve_keys_modified(); + } + } + } + scene->object_manager->tag_update(scene, flag); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs