diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp index 1ed2b558938..6c8e45ceeb4 100644 --- a/intern/mantaflow/intern/MANTA_main.cpp +++ b/intern/mantaflow/intern/MANTA_main.cpp @@ -1984,7 +1984,9 @@ float MANTA::getTimestep() bool MANTA::needsRealloc(FluidModifierData *fmd) { FluidDomainSettings *fds = fmd->domain; - return (fds->res[0] != mResX || fds->res[1] != mResY || fds->res[2] != mResZ); + return ((fds->res_max[0] - fds->res_min[0]) != mResX || + (fds->res_max[1] - fds->res_min[1]) != mResY || + (fds->res_max[2] - fds->res_min[2]) != mResZ); } void MANTA::adaptTimestep() diff --git a/intern/mantaflow/intern/strings/fluid_script.h b/intern/mantaflow/intern/strings/fluid_script.h index e65310c4bfd..3bf8e66c110 100644 --- a/intern/mantaflow/intern/strings/fluid_script.h +++ b/intern/mantaflow/intern/strings/fluid_script.h @@ -711,7 +711,7 @@ def fluid_file_export_s$ID$(framenr, file_format, path, dict, file_name=None, mo file = os.path.join(path, file_name + '_' + framenr + file_format)\n\ if not os.path.isfile(file) or mode_override:\n\ if file_format == '.vdb':\n\ - saveCombined = save(name=file, objects=list(dict.values()), worldSize=domainSize_s$ID$, skipDeletedParts=True, compression=vdbCompression_s$ID$, precision=vdbPrecision_s$ID$, clip=vdbClip_s$ID$, clipGrid=clipGrid)\n\ + saveCombined = save(name=file, objects=list(dict.values()), worldSize=domainSize_s$ID$, skipDeletedParts=True, compression=vdbCompression_s$ID$, precision=vdbPrecision_s$ID$, clip=vdbClip_s$ID$, clipGrid=clipGrid, meta=True)\n\ elif file_format == '.bobj.gz' or file_format == '.obj':\n\ for name, object in dict.items():\n\ if not os.path.isfile(file) or mode_override:\n\ diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c index 0f8a11a40b2..59248e5f9f8 100644 --- a/source/blender/blenkernel/intern/fluid.c +++ b/source/blender/blenkernel/intern/fluid.c @@ -4001,8 +4001,11 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *fmd, has_config = manta_read_config(fds->fluid, fmd, mesh_frame); } - /* Update mesh data from file is faster than via Python (manta_read_mesh()). */ - has_mesh = manta_read_mesh(fds->fluid, fmd, mesh_frame); + /* Only load the mesh at the resolution it ways originally simulated at. + * The mesh files don't have a header, i.e. the don't store the grid resolution. */ + if (!manta_needs_realloc(fds->fluid, fmd)) { + has_mesh = manta_read_mesh(fds->fluid, fmd, mesh_frame); + } } /* Read particles cache. */