Making Animated Fluids Look More Realistic
brunascle writes "Technology Review has an article about recent advances in animated fluid dynamics made by Mathieu Desbrun, a computer science professor at Caltech. 'He and his team are developing an entirely new approach to fluid motion, based on new mathematics called discrete differential geometry, that use equations designed specifically to be solved by computers rather than people.' Desbrun explains that the currently in-use equations for animating fluid dynamics were not developed with computers in mind, and were simply reworkings of older equations. He claims that his new equations use about the same amount of computer resources, but with much better results. The article includes a 5 minute (flash) video demonstrating various results using his equations, ending with 2 fascinating and vivid displays: the first of a snowglobe, and the second of a cloud of smoke filling a volume in the shape of a bunny."
If you ever want to see some cool simulations of water and other particles, there are some folks in the POVRay animation usenet newsgroup (on news.povray.org) that have been experimenting around with fluids over the past year. They are actually pretty neat animations that simulate fluids pretty well.
That's the Stanford Bunny.
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
This is the first post I've seen in a week with a link I actually wanted to check out. Thanks so much for setting someone's server room on fire.
For us gamers, the cool application is clearly fluids in games. Currently water is a flat plane with a bump map, or possibly an animated plane that is extremely simple. Modern game engines are trying to have some simple fluid dynamics, but it's extremely CPU intensive.
The article talks about breaking problems into smaller pieces, which means that it should work well with multi-core processors. Probably you'll first see "cosmetic" fluid dynamics, which don't affect gameplay, but still look pretty cool. Imagine characters splashing in water, setting off waves, creatures vaporizing into a puddle, and so on. Should be cool.
Like many technological advances, this could find funding from the porn industry...
The animations are impressive, but so was the animated water in Titanic and A Perfect Storm. I wish they had featured a comparison of the same animation, performed with the same computer resources, using the traditional and new methods.
"How to Do Nothing," kids activities, back in print!
hmm... the video i was talking about is gone, replaced by the 2nd one under "Multimedia." sorry about that. the other 2 are still good though. the smoke is in the first one. too bad, though, the snowglobe was great.
Ron Fedkiw at Stanford also has a lot of very impressive demonstrations of liquids, smoke, fire, cloth, rigid bodies, elasticity, and fracturing. The videos are definitely worth checking out: http://graphics.stanford.edu/~fedkiw/ I especially like the water being poured into the glass. It's nearly photo realistic.
While I'm sure the gee-whiz factor of more accurately simulating Lara Croft swimming is the hook for the story, shouldn't it at least pay lip service to real-world applications of this new technique? Wind-tunnel testing is one area that currently requires massive physical facilities, and would clearly benefit from this research -- air is a "fluid", too. You could even apply it to thicker fluids, perhaps devising new ways to fabricate items from glass or non-destructively test metal part designs for weaknesses that wouldn't have been otherwise revealed.
Though the importance of properly modelling Lara Croft's swimsuit can hardly be overstated.
Stressed? Me? Of course not. Stress is what a rubber band feels before it breaks, silly.
where are the new age boob animation/physics I've been waiting for?
I was hoping for Lenna. Simulate me a steamy Swedish playmate, and then show me what happens when I take her top off.
Never mind that she's over 50 now, married with 3 kids...
- None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
http://www.technologyreview.com/player/07/01/Smoki ngBunny/1.aspxr eteFluids/1.aspx
http://www.technologyreview.com/player/07/01/Disc
Seems to check referer, so reload once.
Hey! That's my sig you're smoking there!
but the real problem is speed. The quality is quite nice on current simulators it's speed that's a problem. They say the new math isn't faster just more accurate. For entertainment use we need faster not better specs. We need something similar to hardware excelloration that is now done with particle systems. In the old days particles took forever to render but with games and software like Maya they are generally live rendered. High quality live water would be huge for graphics and earth shattering for games. It's possible but it may take a custom core on a video card CPU to pull it off. Water is a big part of many games so it'd be worth dedicated water rendering on video cards.
No, it has nothing to do with the finite element/difference methods at all.
In fact, it's a fundamentally different approach from both of those methods. Finite element/difference means that you think of the problem as a continuous, smooth manifold. Then, you break the manifold into chunks (discretize) it, and you apply the "natural laws" like they would work on a smooth surface to the discretized approximation. The idea is that, the smaller the chunks, the errors becomes too small to notice.
However, in some cases the discretization process causes quantities (like total energy of the system) to not be conserved. The little errors add up to a lot. In fluid dynamics, non-conserved quantities cause solutions to the systems that just look wrong to the casual observer.
This team's approach is fundamentally different. Instead of discretizing a continuous problem involving a smooth manifold and continuous operators, they think of the problem as discrete to begin with and define operators on the discrete geometry. They don't say "apply the derivative to an approximation of a smooth surface", they say "apply this discrete derivative-like operator to this discrete surface". It turns out that if you define your discrete operators correctly, you can focus on conserving quantities (such as total system energy) that the normal approximation to the derivative won't.
It offers no speedup in computation time, and probably has no parallelization opportunities beyond those normally there in fluid dynamics. However, it *does* produce better-looking solutions as all of the conservation laws are met.
Very interesting research.
Remember that just because a simulated fluid flow "looks" more accurate, that doesn't mean that it is. The article isn't very technical at all so it's difficult to tell what's going on here. But the way it is phrased leads me to believe that they are solving new equations rather than using new techniques to solve the well-known traditional equations (e.g., Navier-Stokes, Euler, vorticity evolution equation, etc.). The result may be that the new equations are less accurate in a point-wise sense but the resulting gross observable features of the flow may look more natural. Your eye can't tell the difference between errors O(h) and O(h^2) where h is the grid spacing, but it can certainly tell if artificial viscosity from the numerical scheme causes obvious features of the flow, such as shock waves or density discontinuities, to diffuse with time.
The applications you list require that the estimates of velocity, pressure, etc. come out accurately, and not that the resulting animated fluid flow passes the "looks plausible" test. When you're doing computational fluid dynamics solely for graphics, however, the pointwise accuracy doesn't mean squat; you want something that looks nice. I'm guessing that they've come up with a method that is optimized to make pretty movies at the expense of true numeric accuracy of the flowfield. But, again, the article is worded so generically, it's hard to tell what's going on.
GMD
watch this
What the CFD-literate Slashdotters will want to read is the actual paper (warning, pdf) that the article is based upon.
It's a neat method, but it's nothing revolutionary. The upshot is that their method tries to conserve vorticity (fluid spin) better than the other methods currently used for graphics, with the aim of getting rid of hacks that are now necessary to Make Things Look Good. The entire spin (no pun intended) in the article about "equations for computers, not for people" is journalistic sensationalism.
All told, it's a vorticity-based Finite Element Method, which is solved as a sparse linear system. Cool pictures, though.
"Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
There have been various kinds of approximations... The one I remember the most was Prince of Persia: Sands of Time. There was so little water in the game that the water they did have was very, very cool -- you could walk around in it, your footsteps would send out ripples... While those ripples may have technically been a flat plane, they did properly refract what was under them.
And this was in a PS2 game. We could probably be doing much better already, if people cared that much.
There was also a game called Lugaru, which was the farthest thing from "real" fluid dynamics -- yet, slash someone with a knife, and the wound would bleed a bit (leaving a trail of blood down the character's chest). Kill them with a knife, and your knife would likely drip blood, and the corpse would lie in a growing pool of its own blood. Technically less impressive -- this game can play on pretty much anything that can play Counter-Strike (the original, I'd guess) -- but all it really takes is an attention to detail.
Kind of like -- remember how we all approximated shadows? You know, you'd have a spinning fan and a fixed light source, so you'd generate a spinning-fan-shadow texture and apply it to the wall behind the fan? Eventually, of course, we got machines powerful enough and someone clever enough that we can basically just do shadows any way we want (Doom 3, Quake 4), but until that happened, there were all kinds of cheap hacks we used to make it look as good as it could at the time.
So, this is a long way from being done in games, but depending on how much attention you pay to those kinds of details, you should be able to make a game today which can look much better with respect to water -- just look at Prince of Persia.
One final thing: It won't be applied everywhere. Just look at physics -- not every game is Red Faction, and including Havok (or ODE) doesn't automatically make your game a physics sandbox. Consider that both Half-Life 2 and Doom 3 use the same physics engine. Consider that in Doom 3, you can find an invincible 3-ring binder, which you can unload your entire arsenal of unholy weapons on, burn, explode, and chainsaw it till it's pitch-black, then wait around, and the black will fade into white, and it'll be good as new.
So, you may have a little pond, or a bit of blood, which is approximated about right, but there will be exceptions -- it won't apply to the ocean, and it won't apply to every little dust particle...
Don't thank God, thank a doctor!