Fluid: Potential fix for T74559: Adaptive Domain creates lines in smoke

This commit corrects the maximum resolution field in Fluid objects. The field should be set to the maximum possible resolution, i.e. it should not adjust with adaptive domains and stay constant all the time.

The reason for this is that this resolution value will be used to scale gravity. And this gravity should be constant for adaptive domains too.

It remains to be shown if this issue was the only reason for line-artifacts as seen in T74559.
This commit is contained in:
Sebastián Barschkis 2020-11-05 15:05:30 +01:00
parent cba6b4f4a1
commit 8720c66009
2 changed files with 6 additions and 7 deletions

View File

@ -56,7 +56,8 @@ using std::to_string;
atomic<int> MANTA::solverID(0);
int MANTA::with_debug(0);
MANTA::MANTA(int *res, FluidModifierData *fmd) : mCurrentID(++solverID)
MANTA::MANTA(int *res, FluidModifierData *fmd)
: mCurrentID(++solverID), mMaxRes(fmd->domain->maxres)
{
if (with_debug)
cout << "FLUID: " << mCurrentID << " with res(" << res[0] << ", " << res[1] << ", " << res[2]
@ -85,11 +86,10 @@ MANTA::MANTA(int *res, FluidModifierData *fmd) : mCurrentID(++solverID)
mUsingInvel = (fds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL);
mUsingOutflow = (fds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW);
/* Simulation constants. */
mResX = res[0];
/* Simulation constants */
mResX = res[0]; /* Current size of domain (will adjust with adaptive domain). */
mResY = res[1];
mResZ = res[2];
mMaxRes = MAX3(mResX, mResY, mResZ);
mTotalCells = mResX * mResY * mResZ;
mResGuiding = fds->res;

View File

@ -38,7 +38,6 @@ using std::vector;
struct MANTA {
public:
MANTA(int *res, struct FluidModifierData *fmd);
MANTA(){};
virtual ~MANTA();
/* Mirroring Mantaflow structures for particle data (pVel also used for mesh vert vels). */
@ -745,7 +744,7 @@ struct MANTA {
unordered_map<string, string> mRNAMap;
/* The ID of the solver objects will be incremented for every new object. */
int mCurrentID;
const int mCurrentID;
bool mUsingHeat;
bool mUsingColors;
@ -775,7 +774,7 @@ struct MANTA {
int mResX;
int mResY;
int mResZ;
int mMaxRes;
const int mMaxRes;
int mResXNoise;
int mResYNoise;