forked from bartvdbraak/blender
Fix T73552: Mantaflow - liquid particles show up in organized unrealistic structure
Issue was being caused by a particle offset which was random but the same for every particle.
This commit is contained in:
parent
2328599e97
commit
4a6f715421
2
extern/mantaflow/preprocessed/gitinfo.h
vendored
2
extern/mantaflow/preprocessed/gitinfo.h
vendored
@ -1,3 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
#define MANTA_GIT_VERSION "commit f3d32c45934fd08c40096fb3510e9cc403730977"
|
#define MANTA_GIT_VERSION "commit 21303fab2eda588ec22988bf9e5762d2001c131f"
|
||||||
|
@ -525,7 +525,7 @@ struct knFlipSampleSecondaryParticlesMoreCylinders : public KernelBase {
|
|||||||
if (!(flags(i, j, k) & itype))
|
if (!(flags(i, j, k) & itype))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
RandomStream mRand(9832);
|
static RandomStream mRand(9832);
|
||||||
Real radius =
|
Real radius =
|
||||||
0.25; // diameter=0.5 => sampling with two cylinders in each dimension since cell size=1
|
0.25; // diameter=0.5 => sampling with two cylinders in each dimension since cell size=1
|
||||||
for (Real x = i - radius; x <= i + radius; x += 2 * radius) {
|
for (Real x = i - radius; x <= i + radius; x += 2 * radius) {
|
||||||
@ -791,11 +791,9 @@ struct knFlipSampleSecondaryParticles : public KernelBase {
|
|||||||
const int n = KE * (k_ta * TA + k_wc * WC) * dt; // number of secondary particles
|
const int n = KE * (k_ta * TA + k_wc * WC) * dt; // number of secondary particles
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
return;
|
return;
|
||||||
RandomStream mRand(9832);
|
static RandomStream mRand(9832);
|
||||||
|
|
||||||
Vec3 xi = Vec3(i + mRand.getReal(),
|
Vec3 xi = Vec3(i, j, k) + mRand.getVec3(); // randomized offset uniform in cell
|
||||||
j + mRand.getReal(),
|
|
||||||
k + mRand.getReal()); // randomized offset uniform in cell
|
|
||||||
Vec3 vi = v.getInterpolated(xi);
|
Vec3 vi = v.getInterpolated(xi);
|
||||||
Vec3 dir = dt * vi; // direction of movement of current particle
|
Vec3 dir = dt * vi; // direction of movement of current particle
|
||||||
Vec3 e1 = getNormalized(Vec3(dir.z, 0, -dir.x)); // perpendicular to dir
|
Vec3 e1 = getNormalized(Vec3(dir.z, 0, -dir.x)); // perpendicular to dir
|
||||||
|
Loading…
Reference in New Issue
Block a user