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 <brecht@blender.org>2021-07-01 22:18:55 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-07-02 20:01:53 +0300
commit82466ca2e55884c1942e18ee4cd4f563a18fe232 (patch)
treedc3829bac6a8e88728e4d469760b41677ee26d70
parent0c84939117449c30f57620ef196e3a94bb87fda2 (diff)
Fix T89581: Cycles crash rendering some OpenVDB files with inactive voxels
Print an error message instead.
-rw-r--r--intern/cycles/render/image_vdb.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/intern/cycles/render/image_vdb.cpp b/intern/cycles/render/image_vdb.cpp
index 13cdda552ba..6202035ba3b 100644
--- a/intern/cycles/render/image_vdb.cpp
+++ b/intern/cycles/render/image_vdb.cpp
@@ -16,6 +16,7 @@
#include "render/image_vdb.h"
+#include "util/util_logging.h"
#include "util/util_openvdb.h"
#ifdef WITH_OPENVDB
@@ -61,7 +62,13 @@ struct ToNanoOp {
bool operator()(const openvdb::GridBase::ConstPtr &grid)
{
if constexpr (!std::is_same_v<GridType, openvdb::MaskGrid>) {
- nanogrid = nanovdb::openToNanoVDB(FloatGridType(*openvdb::gridConstPtrCast<GridType>(grid)));
+ try {
+ nanogrid = nanovdb::openToNanoVDB(
+ FloatGridType(*openvdb::gridConstPtrCast<GridType>(grid)));
+ }
+ catch (const std::exception &e) {
+ VLOG(1) << "Error converting OpenVDB to NanoVDB grid: " << e.what();
+ }
return true;
}
else {