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.

7 comments:

flashprogram said...

From what I've heard toy-story 1 was rendered at 1526x922 due to technological limitations of the time. The polygon count is 5-6M per frame.

Today's PCs can render more polygons per second at higher resolution without trouble. The textures also have details as sharp as could be distinguished for said resolutions.

March1n0 said...

I am not sure it makes entirely sense to compare micropolys + stochastic rasterization + a ton on visibility samples per pixel with plain rasterization + 4/8x MSAA.

Simon Green said...

Yeah, I understand that GPUs today use a totally different rendering paradigm from Pixar, but it's certainly possible to implement a REYES style micropolygon render (e.g. RenderAnts) in CUDA. I just thought the historical perspective was interesting!

Anil Mahmud said...

I ve been waitin for da day wen games ud hav Toy Story like graphics .... i ventured to do some calculations on it hope you ppl ud like it

http://pcgraphicsscenario.blogspot.com/2010_02_01_archive.html

Anil Mahmud said...

http://pcgraphicsscenario.blogspot.com/2010_02_01_archive.html

ohmfizzum said...

this post was exactly the info i was i looking for. thanks!

Hristo Yanev said...


Hi fellas,
Thank you so much for this wonderful article really!
If someone want to read more about that industrial 3D animation I think this is the right place for you!