Tuesday, 17 November 2009

2012 == Fluid



Went to see 2012 this weekend. Stupid film, but some great fluid simulations! Pretty much the whole thing is people being chased by natural phenomena. But where else can you see Danny Glover (playing the least convincing American president ever) get hit by an aircraft carrier being carried on a giant tidal wave?

Thursday, 1 October 2009

Real time Toy Story 3D?

As the first all-CG movie, Pixar's Toy Story has always been something of an aspirational target for real-time graphics. When NVIDIA launched the GeForce 2 back in 2000, Jen-Hsun Huang said it was a "major step" towards achieving "Pixar-level animation" in real-time. This may have been overstating things a bit, and it elicited the following hilarious response from Pixar's Tom Duff on the comp.graphics.rendering.renderman newgroup:

"These guys just have no idea what goes into `Pixar-level animation.' (That's not quite fair, their engineers do, they come and visit all the time. But their managers and marketing monkeys haven't a clue, or possibly just think that you don't.)

`Pixar-level animation' runs about 8 hundred thousand times slower than real-time on our renderfarm cpus. (I'm guessing. There's about 1000 cpus in the renderfarm and I guess we could produce all the frames in TS2 in about 50 days of renderfarm time. That comes to 1.2 million cpu hours for a 1.5 hour movie. That lags real time by a factor of 800,000.)

Do you really believe that their toy is a million times faster than one of the cpus on our Ultra Sparc servers? What's the chance that we wouldn't put one of these babies on every desk in the building? They cost a couple of hundred bucks, right? Why hasn't NVIDIA tried to give us a carton of these things? -- think of the publicity milage they could get out of it!

Don't forget that the scene descriptions of TS2 frames average between 500MB and 1GB. The data rate required to read the data in real time is at least 96Gb/sec. Think your AGP port can do that? Think again. 96 Gb/sec means that if they clock data in at 250 MHz, they need a bus 384 bits wide. NBL!

At Moore's Law-like rates (a factor of 10 in 5 years), even if the hardware they have today is 80 times more powerful than what we use now, it will take them 20 years before they can do
the frames we do today in real time. And 20 years from now, Pixar won't be even remotely interested in TS2-level images, and I'll be retired, sitting on the front porch and picking my banjo, laughing at the same press release, recycled by NVIDIA's heirs and assigns. "

Well, it's only 10 years later, and I have no idea if Tom is sitting on his porch yet, but our "toys" are certainly getting closer to achieving this. 500MB of data per frame doesn't sound unreasonable these days.

Anyway, I was reminded about all this by the recent re-release of Toy Story in 3D, and this news story that claims when they re-rendered it, it took less than 1/24th of a second per frame:

"The process of rendering the films — or translating computer data into images — was vastly accelerated by current technology. Where the original “Toy Story” required an hour per frame to create, Mr. Lasseter said, rendering the new 3-D version took less than 1/24th of a second per frame.— Disney Seeks Buzz With ‘Toy Story’ Re-Release, The Wall Street Journal, September 4, 2009"

So maybe we can already render Toy Story in realtime, given a big enough render farm. It's impressive how far we've all come.

New fluid simulation video posted

On YouTube here.

The main improvements here are that it's been optimized (so we can do 128K particles with SPH at 70fps now), and includes surface tension effects so you get nice droplets and splashes. It also includes some improvements to our screen-space surface rendering technique (thanks to Rouslan Dimitrov for helping with this).

Can't wait to see this running on Fermi. Stop me if you're getting bored of these...

Thursday, 7 May 2009

Siggraph 2009 papers

The official lists haven't been posted yet, but as usual Ke-Sen Huang is maintaining a list of accepted papers at Siggraph 2009:
http://kesen.huang.googlepages.com/sig2009.html

Only a few PDFs are available - there are a few interesting sounding titles (I dig Energy-Preserving Integrators for Fluid Animation, for example), but so far it seems like the reviewing panel has really excelled themselves this year in accepting mathematically interesting but so-far-from-being-practical-it's-not-even-funny papers! Or maybe I'm just getting old and miserable.

Tuesday, 24 March 2009

GDC 09: Cool new fluid simulation demo

NVIDIA just released video of a very impressive new fluid simulation demo. It uses a grid-based fluid simulation running on CUDA (written by Jonathan Cohen) that translates and interacts with the car, and is used to advect about 0.5 million particles which are rendered with volumetric shadows. It's running on two GeForce GTX 280s, one running the simulation, and one doing the rendering (but it's scalable). It's amazing to me that this kind of thing was only possible offline only a few years ago, and is now running in real-time.

Monday, 16 March 2009

GDC Direct3D Tutorial Slides Posted

The GDC organizers have made the unusual move of publishing slides from some of the tutorial sessions ahead of the actual conference. You can find them here, but I think it it's still worth attending the tutorials for all the extra details.

Thursday, 26 February 2009

GDC 2009

I have to say that I've never been a huge fan of the Game Developers Conference. It's massively over-priced (if you're unfortunate enough to have to pay), often poorly organized, and on the whole the quality of the technical presentations (including my own) is somewhere between a high school science fair and an Asperger's syndrome help group. It ain't no Siggraph, that's for sure. At least they moved it from the incredibly dull San Jose to San Francisco, where they have such luxuries as bars that stay open past 10pm. GDC's only saving grace is that everyone in the games industry goes there, so it's a great place to network and meet people (read: find a new job).

All that said, I'll be there this year, and there are a few talks that look interesting:

Advanced Visual Effects with Direct3D for PC
- learn about the latest developments in Direct3D, and see AMD and NVIDIA make snide digs at each other under their breath.

Math for Programmers/Physics for Programmers
- these guys know their physics. Takahiro Harada (who shares my love of simulating colliding balls and now works at Havok) and Erwin Coumans (of Bullet fame) will be talking about implementing rigid body physics on CUDA/OpenCL, Cell SPU and Larrabee, which should be interesting (especially given how different these 3 architectures are).

Mixed Resolution Rendering
- sounds like Jeremy is really into cross-bilateral filtering.

Rasterization on Larrabee: A First Look at the Larrabee New Instructions (LRBni) in Action
- apparently Intel have some kind of new CPU that's meant to do graphics and this talk is about some new variant of MMX it has. Michael Abrash is something of a legend and always an entertaining speaker.

The Rendering Technology of KILLZONE 2
- this game looks great, and it's always interesting to hear from developers who have managed to get the PS3 to do something impressive.

Anyway, I should probably do some work now, see you there!