diff options
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/volume.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/intern/cycles/render/volume.cpp b/intern/cycles/render/volume.cpp index a8edc04f8a9..fcf33a5e50a 100644 --- a/intern/cycles/render/volume.cpp +++ b/intern/cycles/render/volume.cpp @@ -438,10 +438,15 @@ static openvdb::GridBase::ConstPtr openvdb_grid_from_device_texture(device_textu image_memory->data_width - 1, image_memory->data_height - 1, image_memory->data_depth - 1); + + typename GridType::Ptr sparse = GridType::create(ValueType(0.0f)); + if (dense_bbox.empty()) { + return sparse; + } + openvdb::tools::Dense<ValueType, openvdb::tools::MemoryLayout::LayoutXYZ> dense( dense_bbox, static_cast<ValueType *>(image_memory->host_pointer)); - typename GridType::Ptr sparse = GridType::create(ValueType(0.0f)); openvdb::tools::copyFromDense(dense, *sparse, ValueType(volume_clipping)); /* #copyFromDense will remove any leaf node that contains constant data and replace it with a |