[Bf-blender-cvs] [5406dfe] openvdb: Increase tolerance value used for copying a dense array to a sparse grid.
Kévin Dietrich
noreply at git.blender.org
Sun Jun 7 11:38:35 CEST 2015
Commit: 5406dfef8e1d11d61ae412d427de1bf73c362727
Author: Kévin Dietrich
Date: Sat Jun 6 14:59:47 2015 +0200
Branches: openvdb
https://developer.blender.org/rB5406dfef8e1d11d61ae412d427de1bf73c362727
Increase tolerance value used for copying a dense array to a sparse
grid.
This doesn't affect low resolution grids much but makes a real
difference for high res grids, as it only considers values real close to
the actual smoke or fire.
Although it might be a bit high of a value, it gives some nice file
sizes going from 106.6 Mb down to 37.7 Mb (pointcache: 264.3 Mb) in a
simple simulation with a base res of 128 and a high res of 2.
===================================================================
M intern/openvdb/intern/openvdb_dense_convert.cpp
M intern/openvdb/intern/openvdb_dense_convert.h
===================================================================
diff --git a/intern/openvdb/intern/openvdb_dense_convert.cpp b/intern/openvdb/intern/openvdb_dense_convert.cpp
index 3de0580..d7a9896 100644
--- a/intern/openvdb/intern/openvdb_dense_convert.cpp
+++ b/intern/openvdb/intern/openvdb_dense_convert.cpp
@@ -86,15 +86,15 @@ GridBase *OpenVDB_export_vector_grid(OpenVDBWriter *writer,
grid[0] = FloatGrid::create(0.0f);
tools::Dense<const float, tools::LayoutXYZ> dense_grid_x(bbox, data_x);
- tools::copyFromDense(dense_grid_x, grid[0]->tree(), 1e-3f);
+ tools::copyFromDense(dense_grid_x, grid[0]->tree(), TOLERANCE);
grid[1] = FloatGrid::create(0.0f);
tools::Dense<const float, tools::LayoutXYZ> dense_grid_y(bbox, data_y);
- tools::copyFromDense(dense_grid_y, grid[1]->tree(), 1e-3f);
+ tools::copyFromDense(dense_grid_y, grid[1]->tree(), TOLERANCE);
grid[2] = FloatGrid::create(0.0f);
tools::Dense<const float, tools::LayoutXYZ> dense_grid_z(bbox, data_z);
- tools::copyFromDense(dense_grid_z, grid[2]->tree(), 1e-3f);
+ tools::copyFromDense(dense_grid_z, grid[2]->tree(), TOLERANCE);
Vec3SGrid::Ptr vecgrid = Vec3SGrid::create(Vec3s(0.0f));
diff --git a/intern/openvdb/intern/openvdb_dense_convert.h b/intern/openvdb/intern/openvdb_dense_convert.h
index 15b6452..1f7fcf1 100644
--- a/intern/openvdb/intern/openvdb_dense_convert.h
+++ b/intern/openvdb/intern/openvdb_dense_convert.h
@@ -35,6 +35,8 @@
#include "openvdb_reader.h"
#include "openvdb_writer.h"
+#define TOLERANCE 1e-1f
+
namespace internal {
template <typename GridType, typename T>
@@ -60,7 +62,7 @@ GridType *OpenVDB_export_grid(OpenVDBWriter *writer,
typename GridType::Ptr grid = GridType::create(T(0));
tools::Dense<const T, openvdb::tools::LayoutXYZ> dense_grid(bbox, data);
- tools::copyFromDense(dense_grid, grid->tree(), 1e-3f);
+ tools::copyFromDense(dense_grid, grid->tree(), TOLERANCE);
grid->setTransform(transform);
More information about the Bf-blender-cvs
mailing list