fluid simulation: generate mesh bug
Closed, ResolvedPublic

Description

System Information
Windows 7 64 bit, CPU: AMD A8-5600K APU with Radeon HD Graphics, GPU: None, Ram: 8 GB.

Blender Version
Broken: 2.78c e92f235283

Short description of error
In fluid simulation, I found an error when generating a mesh. A mesh of liquid is not completely created, there are holes that are not filled with polygons. Because of this, the mesh is not a Non-Manifold geometry. Holes appear in random places. There is no regularity. Sometimes a mesh is generated as a whole. And it is difficult to reproduce this bug.

Here is an example error:
YouTube Vodeo

Exact steps for others to reproduce the error
Here is the scene with an error (the liquid is not baked):

Could this be an effect of "Remove air bubbles" option (under "Fluid boundary")?

EDIT: Did more tests, holes are still there with this option OFF... It's a dead end.

OK. So. Managed to reproduce this. Does appear to be connected to Fluid boundary -> Surface -> Smoothing option, but only appears at higher resolutions which makes it a pain to debug.

ResolutionSmoothRemove Air BubblesHoles?
2003NoNo
1001NoNo
1003YesNo
2500NoNo
2500YesNo
1600NoNo
2503YesYes
2503NoYes
2501YesYes
2501NoYes
1601NoYes

Grabbing this for myself for now.

Krzysztof Rećko (chrisr) triaged this task as Confirmed priority.Mar 11 2017, 3:57 AM
Krzysztof Rećko (chrisr) claimed this task.

It is happening for us all the time, in more than 10 frames out of 180 of a simulation (resolution 550, smoothing 1, remove air bubbles Yes, speed 0.8).

However, there is something else which makes this bug even more troublesome: Cycles does not render properly the mesh if there is a hole. Only one "half" of the mesh is rendered; while the other "half" on the other side of the hole is completely discarded (i.e. as if it was not there to begin with). It only happens, however, if the hole it visible to the camera/scene: if you make the hole out of sight from the camera, both sides are rendered just fine. So it would seem to be not a problem with the entire mesh, but rather something that is only triggered depending on whether the hole actually can be seen in the frame. We point this out because, as far as we know, Cycles can render non-manifold meshes. Seeing the related change in D2556, is it maybe related to the fact that some numbers/areas are infinite/NaN and Cycles in that case stops handling the mesh properly?

Since modifiers can be applied to the cached fluid mesh, one "workaround" we found (for the Cycles issue) is, for instance, using the Remesh modifier with high depth. Maybe it helps somebody out there.

Thank you for taking time looking into this.