Merge branch 'blender-v2.83-release'
This commit is contained in:
commit
1fce2ea743
|
@ -489,23 +489,26 @@ static void manta_set_domain_from_mesh(FluidDomainSettings *mds,
|
|||
|
||||
static void manta_set_domain_gravity(Scene *scene, FluidDomainSettings *mds)
|
||||
{
|
||||
float gravity[3] = {0.0f, 0.0f, -1.0f};
|
||||
float gravity_mag;
|
||||
const float normalization_factor = 1.0f / 9.81f;
|
||||
|
||||
/* Use global gravity if enabled. */
|
||||
if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) {
|
||||
float gravity[3];
|
||||
copy_v3_v3(gravity, scene->physics_settings.gravity);
|
||||
/* 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. */
|
||||
gravity_mag = len_v3(gravity);
|
||||
float gravity_mag = len_v3(gravity);
|
||||
mul_mat3_m4_v3(mds->imat, gravity);
|
||||
normalize_v3(gravity);
|
||||
mul_v3_fl(gravity, gravity_mag);
|
||||
|
||||
copy_v3_v3(mds->gravity, gravity);
|
||||
}
|
||||
else {
|
||||
mul_v3_fl(mds->gravity, normalization_factor);
|
||||
}
|
||||
|
||||
mul_v3_fl(mds->gravity, mds->effector_weights->global_gravity);
|
||||
}
|
||||
|
@ -3110,9 +3113,19 @@ static void update_flowsfluids(struct Depsgraph *depsgraph,
|
|||
levelset,
|
||||
emission_in);
|
||||
if (mfs->flags & FLUID_FLOW_INITVELOCITY) {
|
||||
velx_initial[d_index] = MAX2(velx_initial[d_index], velocity_map[e_index * 3]);
|
||||
vely_initial[d_index] = MAX2(vely_initial[d_index], velocity_map[e_index * 3 + 1]);
|
||||
velz_initial[d_index] = MAX2(velz_initial[d_index], velocity_map[e_index * 3 + 2]);
|
||||
/* Use the initial velocity from the inflow object with the highest velocity for
|
||||
* now. */
|
||||
float vel_initial[3];
|
||||
vel_initial[0] = velx_initial[d_index];
|
||||
vel_initial[1] = vely_initial[d_index];
|
||||
vel_initial[2] = velz_initial[d_index];
|
||||
float vel_initial_strength = len_squared_v3(vel_initial);
|
||||
float vel_map_strength = len_squared_v3(velocity_map + 3 * e_index);
|
||||
if (vel_map_strength > vel_initial_strength) {
|
||||
velx_initial[d_index] = velocity_map[e_index * 3];
|
||||
vely_initial[d_index] = velocity_map[e_index * 3 + 1];
|
||||
velz_initial[d_index] = velocity_map[e_index * 3 + 2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4829,7 +4842,7 @@ void BKE_fluid_modifier_create_type_data(struct FluidModifierData *mmd)
|
|||
mmd->domain->flags = FLUID_DOMAIN_USE_DISSOLVE_LOG | FLUID_DOMAIN_USE_ADAPTIVE_TIME;
|
||||
mmd->domain->gravity[0] = 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->type = FLUID_DOMAIN_TYPE_GAS;
|
||||
mmd->domain->boundary_width = 1;
|
||||
|
|
|
@ -1258,7 +1258,8 @@ static void set_keyed_keys(ParticleSimulationData *sim)
|
|||
key = pa->keys + k;
|
||||
key->time = -1.0; /* use current time */
|
||||
|
||||
psys_get_particle_state(&ksim, p % ksim.psys->totpart, key, 1);
|
||||
const int p_ksim = (ksim.psys->totpart) ? p % ksim.psys->totpart : 0;
|
||||
psys_get_particle_state(&ksim, p_ksim, key, 1);
|
||||
|
||||
if (psys->flag & PSYS_KEYED_TIMING) {
|
||||
key->time = pa->time + pt->time;
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "DNA_constraint_types.h"
|
||||
#include "DNA_curve_types.h"
|
||||
#include "DNA_curveprofile_types.h"
|
||||
#include "DNA_fluid_types.h"
|
||||
#include "DNA_freestyle_types.h"
|
||||
#include "DNA_genfile.h"
|
||||
#include "DNA_gpencil_modifier_types.h"
|
||||
|
@ -5037,6 +5038,20 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
|
|||
}
|
||||
}
|
||||
|
||||
/* Match scale of fluid modifier gravity with scene gravity. */
|
||||
if (!MAIN_VERSION_ATLEAST(bmain, 283, 15)) {
|
||||
for (Object *ob = bmain->objects.first; ob; ob = ob->id.next) {
|
||||
for (ModifierData *md = ob->modifiers.first; md; md = md->next) {
|
||||
if (md->type == eModifierType_Fluid) {
|
||||
FluidModifierData *fmd = (FluidModifierData *)md;
|
||||
if (fmd->domain != NULL) {
|
||||
mul_v3_fl(fmd->domain->gravity, 9.81f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Versioning code until next subversion bump goes here.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue