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);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to