Computer Graphics Forum (2017), Volume 36 (2017), number 8 pp. 354–368
We apply a novel optimization scheme from the image processing and machine learning areas, a fast Primal-Dual method, to achieve controllable and realistic fluid simulations. While our method is generally applicable to many problems in fluid simulations, we focus on the two topics of fluid guiding and separating solid-wall boundary conditions. Each problem is posed as an optimization problem and solved using our method, which contains acceleration schemes tailored to each problem. In fluid guiding, we are interested in partially guiding fluid motion to exert control while preserving fluid characteristics. With our method, we achieve explicit control over both large-scale motions and small-scale details which is valuable for many applications, such as level-of-detail adjustment (after running the coarse simulation), spatially varying guiding strength, domain modification, and resimulation with different fluid parameters. For the separating solid-wall boundary conditions problem, our method effectively eliminates unrealistic artefacts of fluid crawling up solid walls and sticking to ceilings, requiring few changes to existing implementations. We demonstrate the fast convergence of our Primal-Dual method with a variety of test cases for both model problems.
Fig. 1: Smoke guided along a star-shaped velocity field with different and spatially-varying guiding strength denoted in matrix W.
Fig. 2: Liquid simulations with a) a regular fluid solver and b) our solver with separating solid-wall boundary conditions.
In this paper, we introduced a fast, first-order Primal-Dual method to the area of fluid simulation. Smoke simulations are easily guided in an arbitrary shape and also with spatially-varying strength or blur. This is especially useful for artists who create and tweak a low-resolution simulation and want to re-simulate it with higher resolution providing fine-scale details. With our method, the high-resolution simulation will follow the large-scale motion of the input simulation but feature more swirls and other interesting structures. The freedom of the simulation to deviate from the input can be controlled with two parameters: guiding strength and blur for small-scale and large-scale motion, respectively.
Our framework is efficient, general and very flexible. Thereby, we can’t only solve the before mentioned deblurring problem, but also solve for an inequality constraint as boundary condition while still using a standard, common PCG pressure solver. We are talking about allowing for positive normal velocity at fluid-solid boundaries during the pressure projection which leads to nicely separating liquid behavior. Since we are usually aiming at large-scale fluids for visual effects, the separating behavior is preferable over the unrealistic artifacts of fluid crawling up solid walls and sticking to ceilings.