Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastián Barschkis <sebbas@sebbas.org>2020-10-19 22:40:04 +0300
committerSebastián Barschkis <sebbas@sebbas.org>2020-10-19 22:40:17 +0300
commitc6c49257710c4c7976601de54bcddc45eb9ee206 (patch)
treeef7a6fb0e8c8f4509910248079eed78aa881abd6 /source/blender/blenkernel/intern/fluid.c
parentaa244a7a68db75111b4afc12b39c8d8c4297e528 (diff)
Fluid: Added domain check for new OpenVDB precision 'Mini' type
Precision 'Mini' should only be available for liquids domains.
Diffstat (limited to 'source/blender/blenkernel/intern/fluid.c')
-rw-r--r--source/blender/blenkernel/intern/fluid.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index 7392c9161b8..f66ba428611 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -4683,24 +4683,31 @@ void BKE_fluid_effector_type_set(Object *UNUSED(object), FluidEffectorSettings *
settings->type = type;
}
-void BKE_fluid_coba_field_sanitize(FluidDomainSettings *settings)
+void BKE_fluid_fields_sanitize(FluidDomainSettings *settings)
{
- /* Based on the domain type, the coba field is defaulted accordingly if the selected field
+ /* Based on the domain type, certain fields are defaulted accordingly if the selected field
* is unsupported. */
- const char field = settings->coba_field;
+ const char coba_field = settings->coba_field;
+ const char data_depth = settings->openvdb_data_depth;
if (settings->type == FLUID_DOMAIN_TYPE_GAS) {
- if (field == FLUID_DOMAIN_FIELD_PHI || field == FLUID_DOMAIN_FIELD_PHI_IN ||
- field == FLUID_DOMAIN_FIELD_PHI_OUT || field == FLUID_DOMAIN_FIELD_PHI_OBSTACLE) {
+ if (coba_field == FLUID_DOMAIN_FIELD_PHI || coba_field == FLUID_DOMAIN_FIELD_PHI_IN ||
+ coba_field == FLUID_DOMAIN_FIELD_PHI_OUT ||
+ coba_field == FLUID_DOMAIN_FIELD_PHI_OBSTACLE) {
/* Defaulted to density for gas domain. */
settings->coba_field = FLUID_DOMAIN_FIELD_DENSITY;
}
+
+ /* Gas domains do not support vdb mini precision. */
+ if (data_depth == VDB_PRECISION_MINI_FLOAT) {
+ settings->openvdb_data_depth = VDB_PRECISION_HALF_FLOAT;
+ }
}
else if (settings->type == FLUID_DOMAIN_TYPE_LIQUID) {
- if (field == FLUID_DOMAIN_FIELD_COLOR_R || field == FLUID_DOMAIN_FIELD_COLOR_G ||
- field == FLUID_DOMAIN_FIELD_COLOR_B || field == FLUID_DOMAIN_FIELD_DENSITY ||
- field == FLUID_DOMAIN_FIELD_FLAME || field == FLUID_DOMAIN_FIELD_FUEL ||
- field == FLUID_DOMAIN_FIELD_HEAT) {
+ if (coba_field == FLUID_DOMAIN_FIELD_COLOR_R || coba_field == FLUID_DOMAIN_FIELD_COLOR_G ||
+ coba_field == FLUID_DOMAIN_FIELD_COLOR_B || coba_field == FLUID_DOMAIN_FIELD_DENSITY ||
+ coba_field == FLUID_DOMAIN_FIELD_FLAME || coba_field == FLUID_DOMAIN_FIELD_FUEL ||
+ coba_field == FLUID_DOMAIN_FIELD_HEAT) {
/* Defaulted to phi for liquid domain. */
settings->coba_field = FLUID_DOMAIN_FIELD_PHI;
}