[Bf-blender-cvs] [b920cc6bb37] fluid-mantaflow: openvdb changes for manta support

Sebastián Barschkis noreply at git.blender.org
Tue Oct 24 21:42:56 CEST 2017


Commit: b920cc6bb371f54ed5616f8a6ea968637e9135c5
Author: Sebastián Barschkis
Date:   Tue Oct 24 21:42:41 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBb920cc6bb371f54ed5616f8a6ea968637e9135c5

openvdb changes for manta support

customization for obstacle grid to match mantaflow flags grid

===================================================================

M	intern/openvdb/openvdb_capi.cc
M	intern/openvdb/openvdb_capi.h
M	release/scripts/startup/bl_ui/properties_physics_smoke.py
M	source/blender/blenkernel/intern/pointcache.c

===================================================================

diff --git a/intern/openvdb/openvdb_capi.cc b/intern/openvdb/openvdb_capi.cc
index ef4f8c8820f..eb9dd1004fd 100644
--- a/intern/openvdb/openvdb_capi.cc
+++ b/intern/openvdb/openvdb_capi.cc
@@ -58,9 +58,9 @@ OpenVDBFloatGrid *OpenVDB_export_grid_fl(
 	return reinterpret_cast<OpenVDBFloatGrid *>(grid);
 }
 
-OpenVDBIntGrid *OpenVDB_export_grid_ch(
+OpenVDBIntGrid *OpenVDB_export_grid_int(
         OpenVDBWriter *writer,
-        const char *name, unsigned char *data,
+        const char *name, int *data,
         const int res[3], float matrix[4][4],
         OpenVDBFloatGrid *mask)
 {
@@ -120,9 +120,9 @@ void OpenVDB_import_grid_fl(
 	internal::OpenVDB_import_grid<openvdb::FloatGrid>(reader, name, data, res);
 }
 
-void OpenVDB_import_grid_ch(
+void OpenVDB_import_grid_int(
         OpenVDBReader *reader,
-        const char *name, unsigned char **data,
+        const char *name, int **data,
         const int res[3])
 {
 	internal::OpenVDB_import_grid<openvdb::Int32Grid>(reader, name, data, res);
diff --git a/intern/openvdb/openvdb_capi.h b/intern/openvdb/openvdb_capi.h
index 2d2feeadcf1..a062d660700 100644
--- a/intern/openvdb/openvdb_capi.h
+++ b/intern/openvdb/openvdb_capi.h
@@ -52,9 +52,9 @@ struct OpenVDBFloatGrid *OpenVDB_export_grid_fl(
         const int res[3], float matrix[4][4],
         struct OpenVDBFloatGrid *mask);
 
-struct OpenVDBIntGrid *OpenVDB_export_grid_ch(
+struct OpenVDBIntGrid *OpenVDB_export_grid_int(
         struct OpenVDBWriter *writer,
-        const char *name, unsigned char *data,
+        const char *name, int *data,
         const int res[3], float matrix[4][4],
         struct OpenVDBFloatGrid *mask);
 
@@ -71,9 +71,9 @@ void OpenVDB_import_grid_fl(
         const char *name, float **data,
         const int res[3]);
 
-void OpenVDB_import_grid_ch(
+void OpenVDB_import_grid_int(
         struct OpenVDBReader *reader,
-        const char *name, unsigned char **data,
+        const char *name, int **data,
         const int res[3]);
 
 void OpenVDB_import_grid_vec(
diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py
index 91cb542d969..714f7a52b71 100644
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@ -501,7 +501,7 @@ class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, Panel):
         if cache_volume_format == 'POINTCACHE':
             layout.label(text="Compression:")
             layout.row().prop(domain, "point_cache_compress_type", expand=True)
-        elif cache_file_format == 'OPENVDB':
+        elif cache_volume_format == 'OPENVDB':
             if not bpy.app.build_options.openvdb:
                 layout.label("Built without OpenVDB support")
                 return
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index 23324ab2686..0a2bd19baac 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1102,9 +1102,9 @@ static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke
 		OpenVDBWriter_add_meta_fl(writer, "blender/smoke/dx", dx);
 		OpenVDBWriter_add_meta_fl(writer, "blender/smoke/dt", dt);
 
-		const char *name = (!sds->wt) ? "density" : "density low";
+		const char *name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "density" : "density low";
 		density_grid = OpenVDB_export_grid_fl(writer, name, dens, sds->res, sds->fluidmat, NULL);
-		clip_grid = sds->wt ? clip_grid : density_grid;
+		clip_grid = (sds->flags & MOD_SMOKE_HIGHRES) ? clip_grid : density_grid;
 
 		OpenVDB_export_grid_fl(writer, "shadow", sds->shadow, sds->res, sds->fluidmat, NULL);
 
@@ -1113,21 +1113,21 @@ static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke
 		}
 
 		if (fluid_fields & SM_ACTIVE_FIRE) {
-			name = (!sds->wt) ? "flame" : "flame low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "flame" : "flame low";
 			OpenVDB_export_grid_fl(writer, name, flame, sds->res, sds->fluidmat, density_grid);
-			name = (!sds->wt) ? "fuel" : "fuel low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "fuel" : "fuel low";
 			OpenVDB_export_grid_fl(writer, name, fuel, sds->res, sds->fluidmat, density_grid);
-			name = (!sds->wt) ? "react" : "react low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "react" : "react low";
 			OpenVDB_export_grid_fl(writer, name, react, sds->res, sds->fluidmat, density_grid);
 		}
 
 		if (fluid_fields & SM_ACTIVE_COLORS) {
-			name = (!sds->wt) ? "color" : "color low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "color" : "color low";
 			OpenVDB_export_grid_vec(writer, name, r, g, b, sds->res, sds->fluidmat, VEC_INVARIANT, true, density_grid);
 		}
 
 		OpenVDB_export_grid_vec(writer, "velocity", vx, vy, vz, sds->res, sds->fluidmat, VEC_CONTRAVARIANT_RELATIVE, false, clip_grid);
-		OpenVDB_export_grid_ch(writer, "obstacles", obstacles, sds->res, sds->fluidmat, NULL);
+		OpenVDB_export_grid_int(writer, "obstacles", obstacles, sds->res, sds->fluidmat, NULL);
 	}
 
 	return 1;
@@ -1209,7 +1209,7 @@ static int ptcache_smoke_openvdb_read(struct OpenVDBReader *reader, void *smoke_
 
 		OpenVDB_import_grid_fl(reader, "shadow", &sds->shadow, sds->res);
 
-		const char *name = (!sds->wt) ? "density" : "density low";
+		const char *name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "density" : "density low";
 		OpenVDB_import_grid_fl(reader, name, &dens, sds->res);
 
 		if (cache_fields & SM_ACTIVE_HEAT) {
@@ -1217,21 +1217,21 @@ static int ptcache_smoke_openvdb_read(struct OpenVDBReader *reader, void *smoke_
 		}
 
 		if (cache_fields & SM_ACTIVE_FIRE) {
-			name = (!sds->wt) ? "flame" : "flame low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "flame" : "flame low";
 			OpenVDB_import_grid_fl(reader, name, &flame, sds->res);
-			name = (!sds->wt) ? "fuel" : "fuel low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "fuel" : "fuel low";
 			OpenVDB_import_grid_fl(reader, name, &fuel, sds->res);
-			name = (!sds->wt) ? "react" : "react low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "react" : "react low";
 			OpenVDB_import_grid_fl(reader, name, &react, sds->res);
 		}
 
 		if (cache_fields & SM_ACTIVE_COLORS) {
-			name = (!sds->wt) ? "color" : "color low";
+			name = (!(sds->flags & MOD_SMOKE_HIGHRES)) ? "color" : "color low";
 			OpenVDB_import_grid_vec(reader, name, &r, &g, &b, sds->res);
 		}
 
 		OpenVDB_import_grid_vec(reader, "velocity", &vx, &vy, &vz, sds->res);
-		OpenVDB_import_grid_ch(reader, "obstacles", &obstacles, sds->res);
+		OpenVDB_import_grid_int(reader, "obstacles", &obstacles, sds->res);
 	}
 
 	if (sds->fluid && sds->flags & MOD_SMOKE_HIGHRES) {



More information about the Bf-blender-cvs mailing list