Nvidia's Dave Kirk Explains The Point of Cg
An anonymous roward writes "This interview at ZDNet UK has Dave Kirk talking about how Nvidia's Cg programming language will bring movie-making and game-writing together. 'This is a big step towards convergence -- not films and movies and games being the same, but the way people create them being the same. Artists can use the same skills on both. Cg is almost guaranteed to be efficient in hardware, and any Renderman program can be translated to Cg, by hand or by a tool that someone's developing. Once that happens, all the moviemaking can take place in Cg.'"
Comments in the article that announced Cg suggest that it's more like a C-like language for programming the graphics card. Alternatives would be to use OpenGL or DirectX or (shudder) the assembly language for the card's processor chip.
Even though the interview mentions the magic word "Renderman", I don't think this will have much of an impact on movie-making. Well, maybe the low-budget stuff will move to it. But not the likes of Pixar or Dreamworks. Even with the speed of graphics hardware doubling every six months (which I agree is very impressive), we would still need eight or nine years of hardware improvements to render a movie in real time that currently takes two hours per frame.*
OK, it doesn't have to be real-time to be useful. If it's significantly faster than a general-purpose CPU, that could sell it. I suppose it could still be useful for preview renders, where you're trying to check that the animation flows smoothly before you start hammering the render farm. But when you come to do the rendering that your audience will see, you'll want the best quality that you can get, within the constraints of your schedule and your budget.
I've done a few (very short) animated films on the computer, and my experience is that no matter how many bogomips you have, your rendering time per frame stays constant. This is because as the hardware gets faster, I soak up the extra power not by making longer films or more films, but by adding more polygons, more complex textures, more subtle lighting effects, and so on. So the number of frames stays more or less constant, but the complexity of the image in each frame goes up.
Once the computer became fast enough to render a picture quicker than I could draw it by hand, I became the bottleneck. Making the computer faster doesn't let me write the script faster, or animate a character faster, or even move the mouse faster.
Perhaps what's more likely to happen with Cg is that NVidia go to Pixar in a few years and say "we have a chip here that can render a movie like Monsters Inc in real time". Pixar then buy 300 of them and throws enough polygons and lighting effects at them that they still take two hours to render each frame...
* Real time for film = 24 fps, two hours = 7200 seconds, so 24 * 7200 means that two hours per frame is 172,800 times slower than real time. 172,800 is partway between 2^17 and 2^18, so you need 17 or 18 doublings to accelerate this much. A doubling every six months means 8 or 9 years have to pass.
Just another wannabe fantasy novelist...