Commit: 57113144a598b34c0b53f63b3d7932986170a282
Author: Sebastián Barschkis
Date:   Fri Aug 3 23:24:06 2018 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB57113144a598b34c0b53f63b3d7932986170a282

manta script export refactor and lots of cleanups

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

M       build_files/cmake/platform/platform_apple.cmake
M       intern/mantaflow/intern/FLUID.cpp
M       intern/mantaflow/intern/strings/liquid_script.h
M       intern/mantaflow/intern/strings/shared_script.h
M       intern/mantaflow/intern/strings/smoke_script.h
M       source/blender/makesdna/DNA_smoke_types.h
M       source/blender/makesrna/intern/rna_smoke.c

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

diff --git a/build_files/cmake/platform/platform_apple.cmake 
b/build_files/cmake/platform/platform_apple.cmake
index 10e1caaf61f..1854cd2a009 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -395,7 +395,6 @@ if(WITH_OPENMP)
 endif()
 
 if(WITH_MOD_MANTA)
-       message(STATUS "Using TBB as fallback for Mantaflow since OpenMP was 
not found!")
        set(TBB_INCLUDE_DIRS ${LIBDIR}/tbb/include)
        set(TBB_LIBRARIES ${LIBDIR}/tbb/lib/libtbb.a)
 endif()
diff --git a/intern/mantaflow/intern/FLUID.cpp 
b/intern/mantaflow/intern/FLUID.cpp
index 6498d97ead0..8566f881009 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -305,7 +305,6 @@ void FLUID::initSmokeNoise(SmokeModifierData *smd)
 {
        std::vector<std::string> pythonCommands;
        std::string tmpString = smoke_alloc_noise
-               + smoke_wavelet_turbulence_noise
                + smoke_variables_noise
                + smoke_bounds_noise
                + smoke_adaptive_step_noise
@@ -683,7 +682,7 @@ std::string FLUID::getRealValue(const std::string& varName, 
 SmokeModifierData *
                ss << (smd->domain->active_fields & SM_ACTIVE_HEAT ? "True" : 
"False");
        else if (varName == "USING_FIRE")
                ss << (smd->domain->active_fields & SM_ACTIVE_FIRE ? "True" : 
"False");
-       else if (varName == "USING_HIGHRES")
+       else if (varName == "USING_NOISE")
                ss << (smd->domain->flags & MOD_SMOKE_NOISE ? "True" : "False");
        else if (varName == "USING_OBSTACLE")
                ss << (smd->domain->active_fields & SM_ACTIVE_OBSTACLE ? "True" 
: "False");
@@ -803,6 +802,8 @@ std::string FLUID::getRealValue(const std::string& varName, 
 SmokeModifierData *
                ss << smd->domain->flame_smoke_color[2];
        else if (varName == "CURRENT_FRAME")
                ss << md->scene->r.cfra;
+       else if (varName == "END_FRAME")
+               ss << smd->domain->cache_frame_end;
        else if (varName == "PARTICLE_RANDOMNESS")
                ss << smd->domain->particle_randomness;
        else if (varName == "PARTICLE_NUMBER")
@@ -1438,10 +1439,10 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
        cacheDirScript[0] = '\0';
 
        BLI_path_join(cacheDirScript, sizeof(cacheDirScript), 
smd->domain->cache_directory, FLUID_CACHE_DIR_SCRIPT, NULL);
-       BLI_path_join(cacheDirScript, sizeof(cacheDirScript), cacheDirScript, 
FLUID_CACHE_NAME_SCRIPT, NULL);
+       BLI_path_join(cacheDirScript, sizeof(cacheDirScript), cacheDirScript, 
FLUID_CACHE_SMOKE_SCRIPT, NULL);
        BLI_path_make_safe(cacheDirScript);
 
-       bool highres  = smd->domain->flags & MOD_SMOKE_NOISE;
+       bool noise    = smd->domain->flags & MOD_SMOKE_NOISE;
        bool heat     = smd->domain->active_fields & SM_ACTIVE_HEAT;
        bool colors   = smd->domain->active_fields & SM_ACTIVE_COLORS;
        bool fire     = smd->domain->active_fields & SM_ACTIVE_FIRE;
@@ -1451,66 +1452,101 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
 
        std::string manta_script;
 
-       manta_script += manta_import
+       // Libraries
+       manta_script += header_libraries
+               + manta_import;
+
+       // Variables
+       manta_script += header_variables
                + fluid_variables
-               + fluid_solver
-               + fluid_alloc
-               + fluid_adaptive_time_stepping
-               + smoke_alloc
-               + smoke_bounds
                + smoke_variables;
+       if (noise) {
+               manta_script += fluid_variables_noise
+                       + smoke_variables_noise;
+       }
+       if (guiding)
+               manta_script += fluid_variables_guiding;
 
+       // Solvers
+       manta_script += header_solvers
+               + fluid_solver;
+       if (noise)
+               manta_script += fluid_solver_noise;
+       if (guiding)
+               manta_script += fluid_solver_guiding;
+
+       // Grids
+       manta_script += header_grids
+               + fluid_alloc
+               + smoke_alloc;
+       if (noise) {
+               manta_script += smoke_alloc_noise;
+               if (colors)
+                       manta_script += smoke_alloc_colors_noise;
+               if (fire)
+                       manta_script += smoke_alloc_fire_noise;
+       }
        if (heat)
                manta_script += smoke_alloc_heat;
        if (colors)
                manta_script += smoke_alloc_colors;
        if (fire)
                manta_script += smoke_alloc_fire;
-       if (obstacle)
-               manta_script += fluid_alloc_obstacle;
        if (guiding)
                manta_script += fluid_alloc_guiding;
+       if (obstacle)
+               manta_script += fluid_alloc_obstacle;
        if (invel)
                manta_script += fluid_alloc_invel;
 
-       if (highres) {
-               manta_script += fluid_variables_noise
-                       + fluid_solver_noise
-                       + fluid_adaptive_time_stepping_noise
-                       + smoke_variables_noise
-                       + smoke_alloc_noise
-                       + smoke_bounds_noise
-                       + smoke_wavelet_turbulence_noise;
+       // Domain init
+       manta_script += header_gridinit
+               + smoke_bounds;
+       if (noise)
+               manta_script += smoke_bounds_noise;
 
-               if (colors)
-                       manta_script += smoke_alloc_colors_noise;
-               if (fire)
-                       manta_script += smoke_alloc_fire_noise;
+       // Time
+       manta_script += header_time
+               + fluid_adaptive_time_stepping
+               + fluid_adapt_time_step;
+       if (noise) {
+               manta_script += fluid_adaptive_time_stepping_noise
+                       + fluid_adapt_time_step_noise;
        }
 
-       manta_script += smoke_load_data;
-       if (highres)
+       // Import
+       manta_script += header_import
+               + fluid_file_import
+               + fluid_cache_helper
+               + fluid_load_data
+               + smoke_load_data;
+       if (noise)
                manta_script += smoke_load_noise;
+       if (guiding)
+               manta_script += fluid_load_guiding;
 
-       manta_script += fluid_pre_step;
-       if (highres)
-               manta_script += smoke_pre_step_noise;
-
-       manta_script += fluid_post_step;
-       if (highres)
-               manta_script += smoke_post_step_noise;
-
-       manta_script += fluid_adapt_time_step;
-       if (highres)
-               manta_script += fluid_adapt_time_step_noise;
+       // Pre/Post Steps
+       manta_script += header_prepost
+               + fluid_pre_step
+               + fluid_post_step;
+       if (noise) {
+               manta_script += smoke_pre_step_noise
+                       + smoke_post_step_noise;
+       }
 
-       manta_script += smoke_step;
-       if (highres)
-               manta_script += smoke_step_noise;
+       // Steps
+       manta_script += header_steps
+               + smoke_adaptive_step
+               + smoke_step;
+       if (noise) {
+               manta_script += smoke_adaptive_step_noise
+                       + smoke_step_noise;
+       }
 
-       manta_script += smoke_adaptive_step
-                       + smoke_inflow_low
-                       + smoke_standalone;
+       // Main
+       manta_script += header_main
+               + smoke_standalone
+               + fluid_standalone;
 
        // Fill in missing variables in script
        std::string final_script = FLUID::parseScript(manta_script, smd);
@@ -1522,27 +1558,6 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
        myfile.close();
 }
 
-//void FLUID::exportSmokeData(SmokeModifierData *smd)
-//{
-//     bool highres = smd->domain->flags & MOD_SMOKE_NOISE;
-//     bool obstacle = smd->domain->active_fields & SM_ACTIVE_OBSTACLE;
-//     bool guiding  = smd->domain->active_fields & SM_ACTIVE_GUIDING;
-//     bool invel    = smd->domain->active_fields & SM_ACTIVE_INVEL;
-//
-//     char parent_dir[1024];
-//     BLI_split_dir_part(smd->domain->manta_filepath, parent_dir, 
sizeof(parent_dir));
-//
-//     FLUID::saveSmokeData(parent_dir);
-//     if (obstacle)
-//             FLUID::saveFluidObstacleData(parent_dir);
-//     if (guiding)
-//             FLUID::saveFluidGuidingData(parent_dir);
-//     if (invel)
-//             FLUID::saveFluidInvelData(parent_dir);
-//     if (highres)
-//             FLUID::saveSmokeDataHigh(parent_dir);
-//}
-
 void FLUID::exportLiquidScript(SmokeModifierData *smd)
 {
        if (with_debug)
@@ -1552,71 +1567,103 @@ void FLUID::exportLiquidScript(SmokeModifierData *smd)
        cacheDirScript[0] = '\0';
 
        BLI_path_join(cacheDirScript, sizeof(cacheDirScript), 
smd->domain->cache_directory, FLUID_CACHE_DIR_SCRIPT, NULL);
-       BLI_path_join(cacheDirScript, sizeof(cacheDirScript), cacheDirScript, 
FLUID_CACHE_NAME_SCRIPT, NULL);
+       BLI_path_join(cacheDirScript, sizeof(cacheDirScript), cacheDirScript, 
FLUID_CACHE_LIQUID_SCRIPT, NULL);
        BLI_path_make_safe(cacheDirScript);
 
-       bool mesh  = smd->domain->flags & MOD_SMOKE_MESH;
-       bool obstacle = smd->domain->active_fields & SM_ACTIVE_OBSTACLE;
-       bool guiding  = smd->domain->active_fields & SM_ACTIVE_GUIDING;
-       bool invel    = smd->domain->active_fields & SM_ACTIVE_INVEL;
+       bool mesh     = smd->domain->flags & MOD_SMOKE_MESH;
        bool drops    = smd->domain->particle_type & MOD_SMOKE_PARTICLE_DROP;
        bool bubble   = smd->domain->particle_type & MOD_SMOKE_PARTICLE_BUBBLE;
        bool floater  = smd->domain->particle_type & MOD_SMOKE_PARTICLE_FLOAT;
        bool tracer   = smd->domain->particle_type & MOD_SMOKE_PARTICLE_TRACER;
+       bool obstacle = smd->domain->active_fields & SM_ACTIVE_OBSTACLE;
+       bool guiding  = smd->domain->active_fields & SM_ACTIVE_GUIDING;
+       bool invel    = smd->domain->active_fields & SM_ACTIVE_INVEL;
 
        std::string manta_script;
-       
-       manta_script += manta_import
+
+       // Libraries
+       manta_script += header_libraries
+               + manta_import;
+
+       // Variables
+       manta_script += header_variables
                + fluid_variables
-               + fluid_solver
-               + fluid_alloc
-               + fluid_adaptive_time_stepping
-               + liquid_alloc
-               + liquid_init_phi
                + liquid_variables;
+       if (mesh)
+               manta_script += fluid_variables_mesh;
+       if (drops || bubble || floater || tracer)
+               manta_script += fluid_variables_particles;
+       if (guiding)
+               manta_script += fluid_variables_guiding;
+
+       // Solvers
+       manta_script += header_solvers
+               + fluid_solver;
+       if (mesh)
+               manta_script += fluid_solver_mesh;
+       if (drops || bubble || floater || tracer)
+               manta_script += fluid_solver_particles;
+       if (guiding)
+               manta_script += fluid_solver_guiding;
 
+       // Grids
+       manta_script += header_grids
+               + fluid_alloc
+               + liquid_alloc;
+       if (mesh)
+               manta_script += liquid_alloc_mesh;
+       if (drops || bubble || floater || tracer)
+               manta_script += fluid_alloc_sndparts;
+       if (guiding)
+               manta_script += fluid_alloc_guiding;
        if (obstacle)
                manta_script += fluid_alloc_obstacle;
        if (invel)
                manta_script += fluid_alloc_invel;
-       if (drops || bubble || floater || tracer) {
-               manta_script += fluid_variables_particles 
-                       + fluid_solver_particles
-                       + fluid_alloc_sndparts
-                       + liquid_step_particles;
-       }
-       if (mesh) {
-               manta_script += fluid_variables_mesh
-                       + fluid_solver_mesh
-                       + liquid_alloc_mesh
-                       + liquid_step_mesh;
-       }
-       if (guiding) {
-               manta_script += fluid_variables_guiding
-                       + fluid_solver_guiding
-                       + fluid_alloc_guiding;
-       }
 
-       manta_script += fluid_file_import
-                       + fluid_cache_helper
-                       + fluid_load_data
-                       + liquid_load_data
-                       + liquid_load_flip;
+       // Domain init
+       manta_script += header_gridinit
+               + liquid_init_phi;
+
+       // Time
+       manta_script += header_time
+               + fluid_adaptive_time_stepping
+               + fluid_adapt_time_step;
+
+       // Import
+       manta_script += header_import
+               + flui

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to