[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