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
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2020-10-30 19:37:23 +0300
committerBrecht Van Lommel <brecht@blender.org>2020-10-30 19:37:23 +0300
commit02702235522be0b224779d5ff7338ba3309323f0 (patch)
treed5feccd515d51bfea65d72dc69898ca291681b14 /intern
parent62e532785dfd5bd25fb6b1269ec41ea81a32c4c9 (diff)
parent8b806c86e12e92ffc8b486a69ce4de5938f09b4a (diff)
Merge branch 'blender-v2.91-release'
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/render/geometry.cpp5
-rw-r--r--intern/cycles/render/volume.cpp1
2 files changed, 5 insertions, 1 deletions
diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/render/geometry.cpp
index cbd5e7e83fb..9457d5e0205 100644
--- a/intern/cycles/render/geometry.cpp
+++ b/intern/cycles/render/geometry.cpp
@@ -1249,7 +1249,10 @@ void GeometryManager::device_update_preprocess(Device *device, Scene *scene, Pro
}
}
- if (geom->need_update_rebuild && geom->type == Geometry::VOLUME) {
+ /* Re-create volume mesh if we will rebuild or refit the BVH. Note we
+ * should only do it in that case, otherwise the BVH and mesh can go
+ * out of sync. */
+ if (geom->need_update && geom->type == Geometry::VOLUME) {
/* Create volume meshes if there is voxel data. */
if (!volume_images_updated) {
progress.set_status("Updating Meshes Volume Bounds");
diff --git a/intern/cycles/render/volume.cpp b/intern/cycles/render/volume.cpp
index 89777d8669b..a8edc04f8a9 100644
--- a/intern/cycles/render/volume.cpp
+++ b/intern/cycles/render/volume.cpp
@@ -583,6 +583,7 @@ void GeometryManager::create_volume_mesh(Volume *volume, Progress &progress)
volume->clear();
volume->reserve_mesh(vertices.size(), indices.size() / 3);
volume->used_shaders.push_back(volume_shader);
+ volume->need_update = true;
volume->need_update_rebuild = true;
for (size_t i = 0; i < vertices.size(); ++i) {