[Bf-blender-cvs] [9d701402b52] soc-2020-fluid-tools: Cleanup: Changed fluid viewport display defaults and refined comments

Sriharsha Kotcharlakot noreply at git.blender.org
Thu Sep 10 11:54:44 CEST 2020


Commit: 9d701402b52e98f8794d2dde5e33fe08a7d4d050
Author: Sriharsha Kotcharlakot
Date:   Thu Sep 10 15:12:15 2020 +0530
Branches: soc-2020-fluid-tools
https://developer.blender.org/rB9d701402b52e98f8794d2dde5e33fe08a7d4d050

Cleanup: Changed fluid viewport display defaults and refined comments

- Set default slicing method to 'full' and interpolation method to 'linear'.
- Set slicing to 'single' for 'Quick Liquid'.
- Cast to respective enums in switch statements.

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

M	release/scripts/startup/bl_operators/object_quick_effects.py
M	source/blender/blenkernel/intern/fluid.c
M	source/blender/draw/engines/overlay/shaders/volume_velocity_vert.glsl
M	source/blender/draw/engines/workbench/workbench_volume.c
M	source/blender/draw/intern/draw_fluid.c
M	source/blender/makesdna/DNA_fluid_types.h
M	source/blender/makesrna/intern/rna_fluid.c

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

diff --git a/release/scripts/startup/bl_operators/object_quick_effects.py b/release/scripts/startup/bl_operators/object_quick_effects.py
index b36709461fc..5b9764eabfb 100644
--- a/release/scripts/startup/bl_operators/object_quick_effects.py
+++ b/release/scripts/startup/bl_operators/object_quick_effects.py
@@ -526,7 +526,10 @@ class QuickLiquid(Operator):
         liquid_domain = obj.modifiers[-2]
 
         # set color mapping field to show phi grid for liquid
-        liquid_domain.domain_settings.coba_field = 'PHI'
+        liquid_domain.domain_settings.color_ramp_field = 'PHI'
+
+        # set slicing method to single
+        liquid_domain.domain_settings.axis_slice_method = 'SINGLE'
 
         # set display thickness to a lower value for more detailed display of phi grids
         liquid_domain.domain_settings.display_thickness = 0.02
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index 20e8b57a9fe..0f6a8bb7624 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -5005,9 +5005,9 @@ void BKE_fluid_modifier_create_type_data(struct FluidModifierData *fmd)
     fmd->domain->timesteps_maximum = 4;
 
     /* display options */
-    fmd->domain->axis_slice_method = AXIS_SLICE_SINGLE;
+    fmd->domain->axis_slice_method = AXIS_SLICE_FULL;
     fmd->domain->slice_axis = 0;
-    fmd->domain->interp_method = FLUID_DISPLAY_INTERP_CLOSEST;
+    fmd->domain->interp_method = FLUID_DISPLAY_INTERP_LINEAR;
     fmd->domain->draw_velocity = false;
     fmd->domain->slice_per_voxel = 5.0f;
     fmd->domain->slice_depth = 0.5f;
diff --git a/source/blender/draw/engines/overlay/shaders/volume_velocity_vert.glsl b/source/blender/draw/engines/overlay/shaders/volume_velocity_vert.glsl
index 7159b2fac7f..854c6363012 100644
--- a/source/blender/draw/engines/overlay/shaders/volume_velocity_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/volume_velocity_vert.glsl
@@ -85,7 +85,7 @@ vec3 get_vector(ivec3 cell_co)
   return vector;
 }
 
-/* interpolate MAC information for cell-centered vectors */
+/* Interpolate MAC information for cell-centered vectors. */
 vec3 get_vector_centered(ivec3 cell_co)
 {
   vec3 vector;
@@ -100,7 +100,7 @@ vec3 get_vector_centered(ivec3 cell_co)
   return vector;
 }
 
-/* interpolate cell-centered information for MAC vectors */
+/* Interpolate cell-centered information for MAC vectors. */
 vec3 get_vector_mac(ivec3 cell_co)
 {
   vec3 vector;
@@ -157,30 +157,33 @@ void main()
   vector = (isCellCentered) ? get_vector_mac(cell_co) : get_vector(cell_co);
 
   switch (gl_VertexID % 6) {
-    case 0: /* tail of X component */
+    case 0: /* Tail of X component. */
       pos.x += (drawMACX) ? -0.5 * cellSize.x : 0.0;
       color = vec3(1.0, 0.0, 0.0); /* red */
       break;
-    case 1: /* head of X component */
+    case 1: /* Head of X component. */
       pos.x += (drawMACX) ? (-0.5 + vector.x * displaySize) * cellSize.x : 0.0;
       color = vec3(1.0, 1.0, 0.0); /* yellow */
       break;
-    case 2: /* tail of Y component */
+    case 2: /* Tail of Y component. */
       pos.y += (drawMACY) ? -0.5 * cellSize.y : 0.0;
       color = vec3(0.0, 1.0, 0.0); /* green */
       break;
-    case 3: /* head of Y component */
+    case 3: /* Head of Y component. */
       pos.y += (drawMACY) ? (-0.5 + vector.y * displaySize) * cellSize.y : 0.0;
       color = vec3(1.0, 1.0, 0.0); /* yellow */
       break;
-    case 4: /* tail of Z component */
+    case 4: /* Tail of Z component. */
       pos.z += (drawMACZ) ? -0.5 * cellSize.z : 0.0;
       color = vec3(0.0, 0.0, 1.0); /* blue */
       break;
-    case 5: /* head of Z component */
+    case 5: /* Head of Z component. */
       pos.z += (drawMACZ) ? (-0.5 + vector.z * displaySize) * cellSize.z : 0.0;
       color = vec3(1.0, 1.0, 0.0); /* yellow */
       break;
+    default:
+      /* Should never get here. */
+      assert(false);
   }
 
   finalColor = vec4(color, 1.0);
diff --git a/source/blender/draw/engines/workbench/workbench_volume.c b/source/blender/draw/engines/workbench/workbench_volume.c
index 3f64622735c..c76f4a4c470 100644
--- a/source/blender/draw/engines/workbench/workbench_volume.c
+++ b/source/blender/draw/engines/workbench/workbench_volume.c
@@ -72,7 +72,6 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata,
   DefaultTextureList *dtxl = DRW_viewport_texture_list_get();
   DRWShadingGroup *grp = NULL;
 
-  /* Don't try to show liquid domains here */
   if (!fds->fluid) {
     return;
   }
@@ -101,9 +100,9 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata,
                              FLUID_DOMAIN_FIELD_PHI_OBSTACLE);
   const bool show_flags = (fds->coba_field == FLUID_DOMAIN_FIELD_FLAGS);
   const bool show_pressure = (fds->coba_field == FLUID_DOMAIN_FIELD_PRESSURE);
-  eWORKBENCH_VolumeInterpType interp_type = WORKBENCH_VOLUME_INTERP_CLOSEST;
+  eWORKBENCH_VolumeInterpType interp_type = WORKBENCH_VOLUME_INTERP_LINEAR;
 
-  switch (fds->interp_method) {
+  switch ((FLUID_DisplayInterpolationMethod)fds->interp_method) {
     case FLUID_DISPLAY_INTERP_LINEAR:
       interp_type = WORKBENCH_VOLUME_INTERP_LINEAR;
       break;
@@ -114,6 +113,7 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata,
       interp_type = WORKBENCH_VOLUME_INTERP_CLOSEST;
       break;
   }
+
   GPUShader *sh = workbench_shader_volume_get(use_slice, fds->use_coba, interp_type, true);
 
   if (use_slice) {
@@ -231,9 +231,9 @@ static void workbench_volume_object_cache_populate(WORKBENCH_Data *vedata,
 
   wpd->volumes_do = true;
   const bool use_slice = (volume->display.axis_slice_method == AXIS_SLICE_SINGLE);
-  eWORKBENCH_VolumeInterpType interp_type = WORKBENCH_VOLUME_INTERP_CLOSEST;
+  eWORKBENCH_VolumeInterpType interp_type = WORKBENCH_VOLUME_INTERP_LINEAR;
 
-  switch (volume->display.interpolation_method) {
+  switch ((VolumeDisplayInterpMethod)volume->display.interpolation_method) {
     case VOLUME_DISPLAY_INTERP_LINEAR:
       interp_type = WORKBENCH_VOLUME_INTERP_LINEAR;
       break;
diff --git a/source/blender/draw/intern/draw_fluid.c b/source/blender/draw/intern/draw_fluid.c
index 8164ce398f1..50d3e6c4758 100644
--- a/source/blender/draw/intern/draw_fluid.c
+++ b/source/blender/draw/intern/draw_fluid.c
@@ -394,7 +394,7 @@ static bool get_smoke_velocity_field(FluidDomainSettings *fds,
                                      float **r_velocity_z)
 {
   const char vector_field = fds->vector_field;
-  switch (vector_field) {
+  switch ((FLUID_DisplayVectorField)vector_field) {
     case FLUID_DOMAIN_VECTOR_FIELD_VELOCITY:
       *r_velocity_x = manta_get_velocity_x(fds->fluid);
       *r_velocity_y = manta_get_velocity_y(fds->fluid);
diff --git a/source/blender/makesdna/DNA_fluid_types.h b/source/blender/makesdna/DNA_fluid_types.h
index b439116cc56..8e7f3471e1e 100644
--- a/source/blender/makesdna/DNA_fluid_types.h
+++ b/source/blender/makesdna/DNA_fluid_types.h
@@ -81,11 +81,11 @@ enum {
 };
 
 /* Display interpolation method. */
-enum {
+typedef enum FLUID_DisplayInterpolationMethod {
   FLUID_DISPLAY_INTERP_LINEAR = 0,
   FLUID_DISPLAY_INTERP_CUBIC = 1,
   FLUID_DISPLAY_INTERP_CLOSEST = 2,
-};
+} FLUID_DisplayInterpolationMethod;
 
 enum {
   VECTOR_DRAW_NEEDLE = 0,
@@ -100,11 +100,11 @@ enum {
 };
 
 /* Fluid domain vector fields. */
-enum {
+typedef enum FLUID_DisplayVectorField {
   FLUID_DOMAIN_VECTOR_FIELD_VELOCITY = 0,
   FLUID_DOMAIN_VECTOR_FIELD_GUIDE_VELOCITY = 1,
   FLUID_DOMAIN_VECTOR_FIELD_FORCE = 2,
-};
+} FLUID_DisplayVectorField;
 
 enum {
   SNDPARTICLE_BOUNDARY_DELETE = 0,
@@ -148,7 +148,7 @@ enum {
   FLUID_GRIDLINE_COLOR_TYPE_RANGE = 2,
 };
 
-/* Fluid cell types  */
+/* Fluid cell types.  */
 enum {
   FLUID_CELL_TYPE_NONE = 0,
   FLUID_CELL_TYPE_FLUID = (1 << 0),
diff --git a/source/blender/makesrna/intern/rna_fluid.c b/source/blender/makesrna/intern/rna_fluid.c
index dc15652c753..3c20e871f4c 100644
--- a/source/blender/makesrna/intern/rna_fluid.c
+++ b/source/blender/makesrna/intern/rna_fluid.c
@@ -1042,15 +1042,6 @@ static void rna_Fluid_flowtype_set(struct PointerRNA *ptr, int value)
   }
 }
 
-static void rna_Fluid_cobafield_set(struct PointerRNA *ptr, int value)
-{
-  FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data;
-
-  if (value != settings->coba_field) {
-    settings->coba_field = value;
-  }
-}
-
 static const EnumPropertyItem *rna_Fluid_cobafield_itemf(bContext *UNUSED(C),
                                                          PointerRNA *ptr,
                                                          PropertyRNA *UNUSED(prop),
@@ -2558,7 +2549,7 @@ static void rna_def_fluid_domain_settings(BlenderRNA *brna)
   prop = RNA_def_property(srna, "color_ramp_field", PROP_ENUM, PROP_NONE);
   RNA_def_property_enum_sdna(prop, NULL, "coba_field");
   RNA_def_property_enum_items(prop, coba_field_items);
-  RNA_def_property_enum_funcs(prop, NULL, "rna_Fluid_cobafield_set", "rna_Fluid_cobafield_itemf");
+  RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_Fluid_cobafield_itemf");
   RNA_def_property_ui_text(prop, "Field", "Simulation field to color map");
   RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);



More information about the Bf-blender-cvs mailing list