[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