[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