diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2016-04-22 12:46:02 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2016-04-22 12:46:02 +0300 |
commit | a9729e6d75c74f48c6135df710f117435e7ff2f3 (patch) | |
tree | 8f7623ac04d1142fccf89ebb06049ae207a76841 /intern/openvdb | |
parent | 87dcee0c0c33ab2f2a8d22e0d0b53f0289ef7a46 (diff) |
Fix T48236: OpenVDB smoke cache glitches out with smokeless flames.
Issue was that before writing to disk grids are clipped against the
density field's tree to optimize for memory/disk space, which in the
case of simulations with no density field results in all grids having
empty trees.
For now avoid clipping against empty grids, but perhaps in the future it
can be interresting to have some UI parameters to let the user choose
the grid used for clipping.
Diffstat (limited to 'intern/openvdb')
-rw-r--r-- | intern/openvdb/intern/openvdb_dense_convert.cc | 3 | ||||
-rw-r--r-- | intern/openvdb/intern/openvdb_dense_convert.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/intern/openvdb/intern/openvdb_dense_convert.cc b/intern/openvdb/intern/openvdb_dense_convert.cc index d4f62776988..ef52408bd93 100644 --- a/intern/openvdb/intern/openvdb_dense_convert.cc +++ b/intern/openvdb/intern/openvdb_dense_convert.cc @@ -115,7 +115,8 @@ openvdb::GridBase *OpenVDB_export_vector_grid( vecgrid->setTransform(transform); - if (mask) { + /* Avoid clipping against an empty grid. */ + if (mask && !mask->tree().empty()) { vecgrid = tools::clip(*vecgrid, *mask); } diff --git a/intern/openvdb/intern/openvdb_dense_convert.h b/intern/openvdb/intern/openvdb_dense_convert.h index fd10334c4ad..284fd1ceeae 100644 --- a/intern/openvdb/intern/openvdb_dense_convert.h +++ b/intern/openvdb/intern/openvdb_dense_convert.h @@ -64,7 +64,8 @@ GridType *OpenVDB_export_grid( grid->setTransform(transform); - if (mask) { + /* Avoid clipping against an empty grid. */ + if (mask && !mask->tree().empty()) { grid = tools::clip(*grid, *mask); } |