[Bf-blender-cvs] [999a44f02f8] soc-2020-fluid-tools: Added options to display the liquid grids 'Phi In', 'Phi Out' and 'Phi Obstacle'.

Sriharsha Kotcharlakot noreply at git.blender.org
Tue Jun 16 17:37:35 CEST 2020


Commit: 999a44f02f8a6c147dfc5035c55597059a669d21
Author: Sriharsha Kotcharlakot
Date:   Tue Jun 16 21:06:32 2020 +0530
Branches: soc-2020-fluid-tools
https://developer.blender.org/rB999a44f02f8a6c147dfc5035c55597059a669d21

Added options to display the liquid grids 'Phi In', 'Phi Out' and 'Phi Obstacle'.

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

M	release/scripts/startup/bl_ui/properties_physics_fluid.py
M	source/blender/blenkernel/intern/fluid.c
M	source/blender/draw/engines/workbench/workbench_volume.c
M	source/blender/gpu/intern/gpu_draw_smoke.c
M	source/blender/makesdna/DNA_fluid_types.h
M	source/blender/makesrna/intern/rna_fluid.c

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

diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py
index 488f48f84c7..43af2e8ae27 100644
--- a/release/scripts/startup/bl_ui/properties_physics_fluid.py
+++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py
@@ -1297,7 +1297,7 @@ class PHYSICS_PT_viewport_display_color(PhysicButtonsPanel, Panel):
 
         col.use_property_split = False
 
-        if (not domain.coba_field == "PHI"):
+        if (not domain.coba_field[:3] == "PHI"):
             col = col.column()
             col.template_color_ramp(domain, "color_ramp", expand=True)
 
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index 42d985a8bd6..988c58579bb 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -4670,7 +4670,8 @@ void BKE_fluid_coba_field_check(FluidDomainSettings *settings)
   const char field = settings->coba_field;
 
   if (settings->type == FLUID_DOMAIN_TYPE_GAS) {
-    if (field == FLUID_DOMAIN_FIELD_PHI) {
+    if (field == FLUID_DOMAIN_FIELD_PHI || field == FLUID_DOMAIN_FIELD_PHI_IN ||
+        field == FLUID_DOMAIN_FIELD_PHI_OUT || field == FLUID_DOMAIN_FIELD_PHI_OBSTACLE) {
       /* Defaulted to density for gas domain. */
       settings->coba_field = FLUID_DOMAIN_FIELD_DENSITY;
     }
diff --git a/source/blender/draw/engines/workbench/workbench_volume.c b/source/blender/draw/engines/workbench/workbench_volume.c
index 3fc0c5243be..e346c03f6ee 100644
--- a/source/blender/draw/engines/workbench/workbench_volume.c
+++ b/source/blender/draw/engines/workbench/workbench_volume.c
@@ -96,7 +96,10 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata,
   const bool use_slice = (mds->slice_method == FLUID_DOMAIN_SLICE_AXIS_ALIGNED &&
                           mds->axis_slice_method == AXIS_SLICE_SINGLE);
   const InterpType cubic_interp = (InterpType)mds->interp_method;
-  const bool show_phi = (mds->coba_field == FLUID_DOMAIN_FIELD_PHI);
+  const bool show_phi = (mds->coba_field == FLUID_DOMAIN_FIELD_PHI ||
+                         mds->coba_field == FLUID_DOMAIN_FIELD_PHI_IN ||
+                         mds->coba_field == FLUID_DOMAIN_FIELD_PHI_OUT ||
+                         mds->coba_field == FLUID_DOMAIN_FIELD_PHI_OBSTACLE);
   GPUShader *sh = workbench_shader_volume_get(
       use_slice, mds->use_coba, cubic_interp, true, show_phi);
 
diff --git a/source/blender/gpu/intern/gpu_draw_smoke.c b/source/blender/gpu/intern/gpu_draw_smoke.c
index 3b22ad93e99..d9b55dede0f 100644
--- a/source/blender/gpu/intern/gpu_draw_smoke.c
+++ b/source/blender/gpu/intern/gpu_draw_smoke.c
@@ -214,6 +214,15 @@ static GPUTexture *create_field_texture(FluidDomainSettings *mds)
     case FLUID_DOMAIN_FIELD_PHI:
       field = manta_get_phi(mds->fluid);
       break;
+    case FLUID_DOMAIN_FIELD_PHI_IN:
+      field = manta_get_phi_in(mds->fluid);
+      break;
+    case FLUID_DOMAIN_FIELD_PHI_OUT:
+      field = manta_get_phiout_in(mds->fluid);
+      break;
+    case FLUID_DOMAIN_FIELD_PHI_OBSTACLE:
+      field = manta_get_phiobs_in(mds->fluid);
+      break;
     default:
       return NULL;
   }
@@ -363,7 +372,10 @@ void GPU_create_smoke_coba_field(FluidModifierData *mmd)
       mds->tex_field = create_field_texture(mds);
     }
     if (!mds->tex_coba) {
-      if (mds->coba_field == FLUID_DOMAIN_FIELD_PHI) {
+      if (mds->coba_field == FLUID_DOMAIN_FIELD_PHI ||
+          mds->coba_field == FLUID_DOMAIN_FIELD_PHI_IN ||
+          mds->coba_field == FLUID_DOMAIN_FIELD_PHI_OUT ||
+          mds->coba_field == FLUID_DOMAIN_FIELD_PHI_OBSTACLE) {
         mds->tex_coba = create_transfer_function(TFUNC_PHI_SPECTRUM, mds->coba);
       }
       else {
diff --git a/source/blender/makesdna/DNA_fluid_types.h b/source/blender/makesdna/DNA_fluid_types.h
index 21074c9e95f..540212a267c 100644
--- a/source/blender/makesdna/DNA_fluid_types.h
+++ b/source/blender/makesdna/DNA_fluid_types.h
@@ -132,6 +132,9 @@ enum {
   FLUID_DOMAIN_FIELD_FORCE_Y = 12,
   FLUID_DOMAIN_FIELD_FORCE_Z = 13,
   FLUID_DOMAIN_FIELD_PHI = 14,
+  FLUID_DOMAIN_FIELD_PHI_IN = 15,
+  FLUID_DOMAIN_FIELD_PHI_OUT = 16,
+  FLUID_DOMAIN_FIELD_PHI_OBSTACLE = 17,
 };
 
 /* Fluid domain types. */
diff --git a/source/blender/makesrna/intern/rna_fluid.c b/source/blender/makesrna/intern/rna_fluid.c
index f3777fae21b..e175d81da90 100644
--- a/source/blender/makesrna/intern/rna_fluid.c
+++ b/source/blender/makesrna/intern/rna_fluid.c
@@ -1098,6 +1098,27 @@ static const EnumPropertyItem *rna_Fluid_cobafield_itemf(bContext *UNUSED(C),
     tmp.name = "Phi";
     tmp.description = "Phi grid";
     RNA_enum_item_add(&item, &totitem, &tmp);
+
+    tmp.value = FLUID_DOMAIN_FIELD_PHI_IN;
+    tmp.identifier = "PHI_IN";
+    tmp.icon = 0;
+    tmp.name = "Phi In";
+    tmp.description = "Phi In grid";
+    RNA_enum_item_add(&item, &totitem, &tmp);
+
+    tmp.value = FLUID_DOMAIN_FIELD_PHI_OUT;
+    tmp.identifier = "PHI_OUT";
+    tmp.icon = 0;
+    tmp.name = "Phi Out";
+    tmp.description = "Phi Out grid";
+    RNA_enum_item_add(&item, &totitem, &tmp);
+
+    tmp.value = FLUID_DOMAIN_FIELD_PHI_OBSTACLE;
+    tmp.identifier = "PHI_OBSTACLE";
+    tmp.icon = 0;
+    tmp.name = "Phi Obstacle";
+    tmp.description = "Phi Obstacle grid";
+    RNA_enum_item_add(&item, &totitem, &tmp);
   }
 
   RNA_enum_item_end(&item, &totitem);



More information about the Bf-blender-cvs mailing list