Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/fluid.c
| Show First 20 Lines • Show All 475 Lines • ▼ Show 20 Lines | static void manta_set_domain_from_mesh(FluidDomainSettings *mds, | ||||
| /* Set cell size. */ | /* Set cell size. */ | ||||
| mds->cell_size[0] /= (float)mds->base_res[0]; | mds->cell_size[0] /= (float)mds->base_res[0]; | ||||
| mds->cell_size[1] /= (float)mds->base_res[1]; | mds->cell_size[1] /= (float)mds->base_res[1]; | ||||
| mds->cell_size[2] /= (float)mds->base_res[2]; | mds->cell_size[2] /= (float)mds->base_res[2]; | ||||
| } | } | ||||
| static void manta_set_domain_gravity(Scene *scene, FluidDomainSettings *mds) | static void manta_set_domain_gravity(Scene *scene, FluidDomainSettings *mds) | ||||
| { | { | ||||
| float gravity[3] = {0.0f, 0.0f, -1.0f}; | const float normalization_factor = 1.0f / 9.81f; | ||||
| float gravity_mag; | |||||
| /* Use global gravity if enabled. */ | /* Use global gravity if enabled. */ | ||||
| if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) { | if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) { | ||||
| float gravity[3]; | |||||
| copy_v3_v3(gravity, scene->physics_settings.gravity); | copy_v3_v3(gravity, scene->physics_settings.gravity); | ||||
| /* Map default value to 1.0. */ | /* Map default value to 1.0. */ | ||||
| mul_v3_fl(gravity, 1.0f / 9.810f); | mul_v3_fl(gravity, normalization_factor); | ||||
| /* Convert gravity to domain space. */ | /* Convert gravity to domain space. */ | ||||
| gravity_mag = len_v3(gravity); | float gravity_mag = len_v3(gravity); | ||||
| mul_mat3_m4_v3(mds->imat, gravity); | mul_mat3_m4_v3(mds->imat, gravity); | ||||
| normalize_v3(gravity); | normalize_v3(gravity); | ||||
| mul_v3_fl(gravity, gravity_mag); | mul_v3_fl(gravity, gravity_mag); | ||||
| copy_v3_v3(mds->gravity, gravity); | copy_v3_v3(mds->gravity, gravity); | ||||
| } | } | ||||
| else { | |||||
| mul_v3_fl(mds->gravity, normalization_factor); | |||||
| } | |||||
| mul_v3_fl(mds->gravity, mds->effector_weights->global_gravity); | mul_v3_fl(mds->gravity, mds->effector_weights->global_gravity); | ||||
| } | } | ||||
| static bool BKE_fluid_modifier_init( | static bool BKE_fluid_modifier_init( | ||||
| FluidModifierData *mmd, Depsgraph *depsgraph, Object *ob, Scene *scene, Mesh *me) | FluidModifierData *mmd, Depsgraph *depsgraph, Object *ob, Scene *scene, Mesh *me) | ||||
| { | { | ||||
| int scene_framenr = (int)DEG_get_ctime(depsgraph); | int scene_framenr = (int)DEG_get_ctime(depsgraph); | ||||
| ▲ Show 20 Lines • Show All 4,253 Lines • ▼ Show 20 Lines | if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { | ||||
| /* fluid domain options */ | /* fluid domain options */ | ||||
| mmd->domain->maxres = 32; | mmd->domain->maxres = 32; | ||||
| mmd->domain->solver_res = 3; | mmd->domain->solver_res = 3; | ||||
| mmd->domain->border_collisions = 0; // open domain | mmd->domain->border_collisions = 0; // open domain | ||||
| mmd->domain->flags = FLUID_DOMAIN_USE_DISSOLVE_LOG | FLUID_DOMAIN_USE_ADAPTIVE_TIME; | mmd->domain->flags = FLUID_DOMAIN_USE_DISSOLVE_LOG | FLUID_DOMAIN_USE_ADAPTIVE_TIME; | ||||
| mmd->domain->gravity[0] = 0.0f; | mmd->domain->gravity[0] = 0.0f; | ||||
| mmd->domain->gravity[1] = 0.0f; | mmd->domain->gravity[1] = 0.0f; | ||||
| mmd->domain->gravity[2] = -1.0f; | mmd->domain->gravity[2] = -9.81f; | ||||
| mmd->domain->active_fields = 0; | mmd->domain->active_fields = 0; | ||||
| mmd->domain->type = FLUID_DOMAIN_TYPE_GAS; | mmd->domain->type = FLUID_DOMAIN_TYPE_GAS; | ||||
| mmd->domain->boundary_width = 1; | mmd->domain->boundary_width = 1; | ||||
| /* smoke domain options */ | /* smoke domain options */ | ||||
| mmd->domain->alpha = 1.0f; | mmd->domain->alpha = 1.0f; | ||||
| mmd->domain->beta = 1.0f; | mmd->domain->beta = 1.0f; | ||||
| mmd->domain->diss_speed = 5; | mmd->domain->diss_speed = 5; | ||||
| ▲ Show 20 Lines • Show All 444 Lines • Show Last 20 Lines | |||||