59 Commits

Author SHA1 Message Date
Lukas Tönne
025c401dca Fix #144250: Crash when mantaflow solver does not converge and skips cleanup
Mantaflow likes to throw exceptions when things go wrong, which includes a
simple case of the solver not converging sufficiently. This should not be
catastrophic, but cleanup of buffers is omitted when such an exception occurs.
This then leads to yet another failure when the solver is stopped because of
incorrect buffer refcounts. That exception bubbles up through the python layer
and causes errors in the Blender integration wrapper that cause crashes.

Pull Request: https://projects.blender.org/blender/blender/pulls/147527
2025-10-07 15:49:07 +02:00
Bartosz Kosiorek
55bdaab4da Fix #144701: Wrong falling fluid behaviour
Error introduced with performance improvement in #137733.

Pull Request: https://projects.blender.org/blender/blender/pulls/144884
2025-08-22 19:19:29 +02:00
Bartosz Kosiorek
f2ad6b1ef0 Fix: Mantaflow OpenVDB cache hollow volume artifacts
If an OpenVDB grid has an 8x8x8 block with the same value, it is stored as
a tile with a single value. Now iterate over the bounding box and copy the
value to all voxels for this case.

Fix #91174: Hollow emission artifacts
Fix #124064: Hollow density artifacts

Pull Request: https://projects.blender.org/blender/blender/pulls/139231
2025-06-02 16:20:43 +02:00
Bartosz Kosiorek
48a6626968 Physics: Improve fluid viscosity performance by 2.5%
By moving checking of Grid outside of loop, we are decrease amount of
conditional branches, which allows for better compiler optimizations.

Pull Request: https://projects.blender.org/blender/blender/pulls/138410
2025-05-06 19:05:49 +02:00
Bartosz Kosiorek
56144ee59d Fix #80529: Smoke dissolve rate affected by time steps
Now results are similar under different time steps. Additionally it is
now working correctly with different time scale, where smoke lifetime
is proportional to time scale.

Pull Request: https://projects.blender.org/blender/blender/pulls/138347
2025-05-06 19:04:10 +02:00
Bartosz Kosiorek
b3dcaa2e1e Physics: Improve liquid simulation performance
Move various computations out of a loop.

This can improve performance up to 1.25x - 1.5x depending on the scene.

Pull Request: https://projects.blender.org/blender/blender/pulls/137733
2025-04-30 19:39:57 +02:00
Brecht Van Lommel
f27cd94a0c OpenVDB: Support build without delay loading 2025-01-06 17:21:11 +01:00
Sergey Sharybin
33e5cd4e2f Fix bitwise operation used on boolean in Mantaflow 2023-04-19 10:02:09 +02:00
Erik Abrahamsson
5a02d0da7a Fluid: Parallelizations for Mantaflow functions (D12002)
This update includes part of a performance boost from D12002.
Contributed by @erik85
2021-09-06 17:30:30 +02:00
Sebastián Barschkis
3e23af4c49 Fluid: Clang-format cleanups
Just cleanup.
2021-09-06 17:30:30 +02:00
Sebastián Barschkis
80bc819d50 Fluid: Clang-format cleanup
Updated fluid source files in extern with clang-format.
2021-06-18 12:28:17 +02:00
Sebastián Barschkis
adefdbc9df Fluid: Optimization for FLIP neighbor search radius
Contributed by @erik85 in D11400. The idea from this patch was placed in
a more generic context: A new FOR macro has been added that loops
over the neighbors of a cell within a given radius.
2021-06-18 12:18:21 +02:00
Sebastián Barschkis
8dd43ac23e Fluid: Updated Mantaflow source files
Includes update for OpenVDB file IO, i.e. fixes an issue with
compression flag combination that resulted in random segfaults.

Other changes: Cleanup and formatting.
2021-05-18 22:36:51 +02:00
Sebastián Barschkis
a563775649 Fluid: Updated Mantaflow source files
This updates fixes the following issues (critical for 2.92):

- Issue that prevented dense 'int' grids from being exported (incorrect clip value)
- Issue with particles outside out of domain bounds (position between -1 and 0) not being deleted
2021-02-05 16:23:02 +01:00
Sebastián Barschkis
9ad828dbad Fluid: Updated Mantaflow source files
Includes improvements for the file IO. Namely, more meta data will be written from now on.

This change is required to prevent IO issues (e.g. T84649) that arised through the use of sparse grids caching (introduced in 2.92).
2021-02-02 17:46:48 +01:00
Sebastián Barschkis
0b711e6758 Fluid: Updated Mantaflow source files
Includes minor fixes / cleanups from the viscosity plugin.
2021-01-13 09:49:38 +01:00
Sebastián Barschkis
5b90ed6c06 Fluid: Fix cache saving issue with OpenVDB IO
Fixes issue where files would not be written when 'resumable' option was checked.
2021-01-10 19:16:44 +01:00
Sebastián Barschkis
635694c0ff Fluid: Added new viscosity solver
Mainly updated the Mantaflow version. It includes the new viscosity solver plugin based on the method from 'Accurate Viscous Free Surfaces for Buckling, Coiling, and Rotating Liquids' (Batty & Bridson).

In the UI, this update adds a new 'Viscosity' section to the fluid modifier UI (liquid domains only). For now, there is a single 'strength' value to control the viscosity of liquids.
2020-12-23 15:48:38 +01:00
Sebastián Barschkis
6f22a536e6 Fluid: Updated Mantaflow source files
Includes outflow optimization - might have been the cause of instabilities.
2020-12-06 21:56:43 +01:00
Sebastián Barschkis
e09d0c0d07 Fluid: Updated Mantaflow source files
This update introduces two improvements from the Mantaflow repository:

(1) Improved particle sampling:
- Liquid and secondary particles are sampled more predictably. With all parameters being equal, baked particles will be computed at the exact same position during every bake.
- Before, this was not guaranteed.

(2) Sparse grid caching:
- While saving grid data to disk, grids will from now on be saved in a sparse structure whenever possible (e.g. density, flame but not levelsets).
- With the sparse optimization grid cells with a value under the 'Empty Space' value (already present in domain settings) will not be cached.
- The main benefits of this optimization are: Smaller cache sizes and faster playback of simulation data in the viewport.
- This optimization works 'out-of-the-box'. There is no option in the UI to enable it.
- For now, only smoke simulation grids will take advantage of this optimization.
2020-11-25 23:18:12 +01:00
Sebastián Barschkis
311031ecd0 Cleanup: Use nullptr everywhere in fluid code
Switched from NULL to nullptr.
2020-11-06 12:06:05 +01:00
Sebastián Barschkis
e3858f4716 Fluid: Updated APIC plugin
Updated version of APIC plugin in order to resolve ASAN issues.
2020-11-03 19:34:31 +01:00
Sebastián Barschkis
30b17e30f8 Fluid: Cleanup for APIC debug build setup
Fixes build issue
2020-10-30 11:15:24 +01:00
Sebastián Barschkis
8bdf191461 Fluid: Added APIC simulation method
Basic support for velocity updates with the APIC method.

This commit adds APIC to the already existing dropdown menu for the simulation method. The APIC plugin within Mantaflow has been updated to the latest version.
2020-10-30 09:52:05 +01:00
Sebastián Barschkis
2ec07dfa18 Fluid: Update Mantaflow source files
Updated files includes:
- Fix for smoke / fire emission from particles
- Custom precision for liquid particles when saving in OpenVDB format
2020-10-14 00:29:43 +02:00
Sebastián Barschkis
a0ebfab4f3 Fluid: Updated Mantaflow source files
Among code cleanups, this update includes a new flood-fill helper function for levelsets.
2020-10-06 18:35:12 +02:00
Sebastián Barschkis
c2691c93d5 Fix T79201: Mantaflow: Fluid guides don't affect simulation.
This broke during the OpenVDB update for 2.90. Just making sure that guiding velocity files are being read correctly.
2020-08-07 15:33:51 +02:00
Sebastián Barschkis
ea4a00e93b Fluid: Fix warnings from max particle option
-Wreorder was the issue.
2020-07-27 10:32:12 +02:00
Sebastián Barschkis
2ebf263f5c Fluid: Updated Mantaflow source files
New files contain updated sampling function (support for maximum number of particles cap).
2020-07-26 22:02:10 +02:00
Sebastián Barschkis
6b6e2e742f Fluid: Updated Mantaflow source files
Updated files include fixes for the mesh IO - read/write success was not propagated.
2020-07-21 15:22:40 +02:00
Sebastián Barschkis
0cdc75ccd2 Fluid: Cleanup build system for extern mantaflow
No longer including unused dependencies. Should numpy IO be needed at some point, the Manta source update script can be configured so that the required dependencies are included again.
2020-07-17 15:58:13 +02:00
Sebastián Barschkis
93f21ebb13 Fluid: Update Mantaflow source files
Includes cleanup that resolves a -Wunused-but-set-variable warning.
2020-07-16 18:04:44 +02:00
Sebastián Barschkis
aa547ce88b Fluid: Update Mantaflow source files
Refactored various functions after noticing new warnings when compiling on Apple DTK devices - there should now be fewer warnings when building.
2020-07-16 16:39:49 +02:00
Sebastián Barschkis
7e0289b618 Fluid: Updated Mantaflow source files
New files include fixes for obj mesh import and minor cleanups.
2020-07-14 22:21:15 +02:00
Sebastián Barschkis
84e1e0cf95 Fix T78170: Mantaflow Crash | Whitewater Particles Baking
Fixed issue in the upstream Mantaflow repository.
2020-06-26 18:29:43 +02:00
Sebastián Barschkis
ac0852cea0 Fluid: Fix OpenVDB compiler warnings
Kudos to brecht for noticing the issue
2020-06-24 18:36:42 +02:00
Sebastián Barschkis
ba380fc0bf Fix T78213: Windows 10 Build Errors: Extern_Manaflow error messages
Kudos to LazyDodo for figuring this out
2020-06-24 18:01:34 +02:00
Sebastián Barschkis
9fe64948ab Fluid: Updated Mantaflow source with latest OpenVDB changes
This updated set of Mantaflow files includes the improved  OpenVDB file IO. With this update it is finally possible to store multiple grids per file. It is also possible to save particle systems and particle data to OpenVDB files.
2020-06-24 16:07:35 +02:00
Sebastián Barschkis
aa0e98d707 Merge branch 'blender-v2.83-release' 2020-05-20 16:52:03 +02:00
Sebastián Barschkis
c1545c9a9d Fluid: Fix for non-moving liquid particles
Issue was introduced in 7bb3d9787e with new Mantaflow files from 61280e5af3.
2020-05-20 16:37:29 +02:00
Sebastián Barschkis
e73d7d27dc Merge branch 'blender-v2.83-release' 2020-05-19 21:23:54 +02:00
Sebastián Barschkis
61280e5af3 Fluid: Updated Mantaflow source files
Includes changes for particle skipping during advection.
2020-05-19 21:12:30 +02:00
Sebastián Barschkis
ebbaae625f Fluid: Updated Mantaflow source files
Includes more flexible options for dt, dx in secondary particles plugin.
2020-05-08 16:59:10 +02:00
Sebastián Barschkis
c4a850b7c2 Updated Mantaflow source files 2020-04-30 17:33:22 +02:00
Sebastián Barschkis
4a6f715421 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.
2020-04-08 18:29:26 +02:00
Sebastián Barschkis
a1ddb63329 Fluid: Update Mantaflow source files
Update includes new grid helper functions and some cleanups.
2020-04-08 13:25:16 +02:00
Sebastián Barschkis
7f3e84deb5 Fluid: Updated manta pp files
Includes only a rename. The name PyInit_Main was a bit confusing as it just belongs to Manta.
2020-03-17 11:57:04 +01:00
Sebastián Barschkis
35a29befb3 Fluid: Updated Manta pp files
Includes additional minmax check for Windows
2020-03-16 11:52:18 +01:00
Sebastián Barschkis
5539b68009 Fluid: Optimization for smoke simulation (multigrid)
The solver will now automatically detect static scenes (no moving obstacles) and use a slightly faster pressure solve in those cases.
2020-03-07 19:57:06 +01:00
Sebastián Barschkis
21bdeb5cc0 Fluid: Updated Manta pp files
Updates include:
- std::move() cleanup in rcmatrix.h
- Enabled parallelization for fluid guiding (fairly noticeable speed improvement).
- More flexible flags setter function with control over boundary width.
2020-02-28 16:20:13 +01:00