Nvidia Releases Hardware-Accelerated Film Renderer
snowtigger writes "The day we'll be doing movie rendering in hardware has come: Nvidia today released Gelato, a hardware rendering solution for movie production with some advanced rendering features: displacement, motion blur, raytracing, flexible shading and lighting, a C++ interface for plugins and integration, plus lots of other goodies used in television and movie production. It will be nice to see how this will compete against the software rendering solutions used today. And it runs under Linux too, so we might be seeing more Linux rendering clusters in the future =)" Gelato is proprietary (and pricey), which makes me wonder: is there any Free software capable of exploiting the general computing power of modern video cards?
Gelsto is proprietary (and pricey), which makes me wonder: is there any Free software capable of exploiting the general computing power of modern video cards?
Gelato seems to be correct...
Some people are like slinkies--basically useless but they bring a smile to your face when pushed down the stairs.
This is a reversion of the norm :) [from the page linked to in the story]:
Operating System
* RedHat Linux 7.2 or higher
* Windows XP (coming soon)
Rich
The rumor on the street is that a Soho based SFX house tried this when they had a deadline that standard software rendering couldn't meet.
So they wrote an engine to do renderman->OpenGL and ran it across many boxes.
Problem was that they got random rendering artefacts by rendering on different cards - different colors etc, and couldn't figure out why.
When working on one box they got controlled results, but only had the power of one renderer.
For some possible applications, check out machinima.com - film-making in real time using game engines.
Xenu loves you!
Is there any Free software capable of exploiting the general computing power of modern video cards?
Well, since they released "a C++ interface for plugins and integration" for Gelato (ice cream in Italian, btw), this probably means that free software can (and, eventually, will) support all these high-end functions... or am I completely wrong?
For instance, just imagine Blender with a Gelato plug-in for rendering... hmmmm... Now I understand why they named it "Gelato"...
The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
The AGP bus has assymetrical bandwidth. Upstream to video card is like 10x faster than downstream to the CPU. So you can dump tons of data to the GPU but you can't get the data back for further processing fast enough, which defeats the purpose.
www.rexguo.com - Technologist + Designer
"Gelsto is proprietary (and pricey)"
A company that wants to be payed for their work, weird !
You will see more, allot more, of this for the Linux platform in the near future.
Software may be released with source code, but no way that it will be released under GPL, most ISV's can't make a living releasing their work under GPL.
And please the "but you can provid consulting services" argument is not valid, it dont work that way in the real world.
Perhaps you should read the Nvidia FAQ? This topic is covered. From what I can tell, they don't use the GPU in the traditional way, they just use it as a co-processor.
Alias has Maya for Linux. Newtek has Lightwave rendering node software for Linux. There are a few other 3D packages like AC3D too.
Forget thrust, drag, lift and weight. Airplanes fly because of money.
I bet the type of people that buy this are like big time architects that have a few machines set up to do renders for clients, and want to perhaps do some additional effects for promo/confidence value, that likely already have people running that type of hardware.
Then again all those Quadro users could be CAD people and they've got no audience. =)
But, NVIDIA's Quadro lineup *ARE* PCB Hacked consumer cards. Some PCI ID(or BIOS for the NV3x cards) hacking can get you a Quadro out of a GeForce easily, minus the extra video memory present on the Quadro's. I've done this heaps of times with my GeForce4 Ti 4200 8x (to a Quadro 780 XGL and even a 980 XGL) and I believe people have done it with the NV3x/FX cards as well.
This film renderer is different. It uses the GPU and CPU together as powerful floating point processors (not sure if gelato does anything more than that).
This is not really correct. The graphics cards Gelato uses are consumer hardware. This doesn't mean that the image is generated directly by the card! The 3D hardware is used as a specialized fast and parallel calculation unit, used especially for geometric calculation (matrix per vertex multiplication, essentially) and other stuff. This (of course) means that the rendering is NOT done in realtime.
Actually, there has been reports of using such hardwares to produce the similar results of the high-end, software based methods like those used in films. The trick is to break the job (typically the complex RenderMan shaders) to many passes, and feed them to the graphics card to process. By many passes, I mean 100~200 passes. The outcome will be like rendering a frame in a few seconds (we're not talking about real-time renderings here) which is MUCH faster the software based approaches. The limit in the past was that the color representaion inside the GPUs used a small number of bits per channel and by having a lots of passes on the data, round-off errors would degredate the quality of the results. But now, nVidia supports 32 bit floating point representaion for each color channel (i.e 128 bits per pixel for RGBA!) and this brings back the idea of using the GPU with many passes to complete the job. Please note that in the film and TV business, we're talking of large clusters of machines and weeks of rendering and bringing it down to days with smaller number of machines is a very big progress.
This might also be interesting: GPGPU /Arvid
Take a look at the Jashaka project. It is a real time video editing suit and the designers have been working with and have supposedly been getting support from Nvidia, so they may have had access and I would imagine certainly will have access to these video cards. I can't imagine them not taking advantage of this technology.
The other nice thing is if memory serves me correctly this program is being designed to work on Windows, Linux and OS X, so good news all around.
"Napalm is nature's toothpaste" - Chef Brian
is there any Free software capable of exploiting the general computing power of modern video cards?
A quick Googling revealed the following:
- BrookGPU
- GPGPU
Windows XP's Achilles Heel Apparently Revealed
M4 is a free as in beer movieplayer/vj tool that uses the power of openGL to manipulate movies,images and text.
Not only with hardware manufacturers/drivers, but also general software. ISV's are getting annoyed by Microsoft's dominance of the desktop market, and through that, their (heavy) influence on desktop software. It's not inconceivable that in a decade, Microsoft could control every aspect of the standard desktop PC and desktop software market. At the moment some of the only really strong ISVs in their respective areas are Adobe, Corel, Intuit, Macromedia, Oracle, and a few specialized companies. Expect a big ISV push towards a "neutral" platform, like Linux or FreeBSD. Windows is too big to stop supporting, but ISVs will be smart to at least try and carve out a suitable alternative and avoid being completely dominated by Microsoft. All that most ISVs might be able to hope for in a decade is being bought out by Microsoft or making deals with Microsoft, if things don't go the way of creating a vendor-neutral platform.
Insightful my ass.
Maya, Houdini and XSI are all available for Linux, and they work well.
Software, like much technology, follows a classic cycle from rare/expensive to common/cheap as the knowledge and means required to build it get cheaper.
"Moore's Law" is simply the application of this general law to hardware. But it applies also to software.
Free software is an expression of this cycle: at the point where the individual price paid by a group of developers to collaborate on a project falls below some amount (which is some function of a commercial license cost), they will naturally tend to produce a free version.
This is my theory, anyhow.
We can use this theory to predict where and how free software will be developed: there must be a market (i.e. enough developers who need it to also make it) and the technology required to build it must be itself very cheap (what I'd call 'zero-price').
History is full of examples of this: every large scale free software domain is backed by technologies and tools that themselves have fallen into the zero-price domain.
Thus we can ask: what technology is needed to build products like Gelato, and how close is this coming to the zero-price domain?
Incidentally, a corollary of this theory is that _all_ software domains will eventually fall into the zero-price domain.
And a second corollary is that this process can be mapped and predicted to some extent.
Ceci n'est pas une signature
For those who don't remember, BMRT was a really cool RenderMan based renderer that Pixar had some sort of love/hate relationship with. IIRC, they used it, yet they sued the company. At the end nVidia bought them, though it wasn't clear why at the time.
For 3D rendering, especially non-realtime cinematic rendering, you have large source datasets - LOTS of geometry, huge textures, complex shaders - but a relatively small result. You also generally take long enough to render (seconds or even minutes, rather than fractions of a second) that the readback speed is not so much an issue.
Upload to the card is plenty fast enough (theoretical 2 GB/s, but achieved bandwidth is usually a lot less) to feed it the source data, if you're doing something intensive like global illumination (which will take a lot more time to render than the upload time). Readback speed (around 150 MB/s) is indeed a lot slower, but when your result is only e.g. 2048x1536x64 (FP16 OpenEXR format, 24 MB per image), you can typically read that back in 1/6 of a second. Not to say PCIe won't help, of course, in both cases.
Readback is more of an issue if you can't do a required processing stage on the GPU, and you have to retrieve the partially-complete image from the GPU, work on it, then send it back for more GPU processing etc, but with fairly generalised 32 bit float processing, you can usually get away with just using a different algorithm, even if it's less efficient, and keep it on the card.
Another issue might be running out of onboard RAM, but in most cases you can just dump source data instead & upload it again later.
Why would anyone engrave "Elbereth"?
Almost every FX house worth its salt in the CG business uses Pixar's Renderman on UNIX or Linux machines. The reasons behind this choise are very simple.
Renderman is proven technology and has been so since the early '90s. Renderman is well known, its results are predictable and it is a fast renderer. Also, current production pipelines are optimised for Renderman.
UNIX and Linux are quite good when it comes to distributed environments (can anyone say Render Farm?) and handle large file sizes well (Think a 2k by 2k image file, large RIB files).
And last but not least, renderman is available with a source code license.
Hardware accelerated film rendering is in essence nothing but processor operations, some memory to hold objects and some I/O stuff to get the source files and output the film images. Please explain to me why a dedicated rendering device from NVidia would be any better than your average UNIX or Linux machine? Correct, there aren't any advantages, only disadvantages. (More expensive, proprietary hardware, unproven etc.)
I think that indeed there is free software to do movies and rendered animations using raytracing. First, Cinelerra can use a linux cluster for movie rendering. Second, there's a whole bunch of modellers/raytracers out there that perform very well: Povray is the oldest and most advanced, and can run on a pvm cluster, yafray is relatively recent and can use an openmosix cluster for networked rendering, Blender now integrates a raytracer AND exports to yafray. Those are the 4 programs I know of that I use, but there are more, I just haven't looked for more. So, yes, there is free software for movie rendering already!
---- I am certain of only one thing : I know nothing else.
I was under the impression that it's hard to use a video card for general computing tasks because of the way that AGP is designed. It's really good at shunting massive amounts of data into the card (textures, geometry, lighting, etc) but terrible at getting a good data rate back into the computer. They're designed to take a load of data, process it and push the output back to the screen, not the processor. This is the major reason, IMHO.
See here and here. More and more pieces of the moviemaking toolchain are available Openly, only a matter of time before someone adds a GUI wrapper to integrate it all. Will they dare call it Raxip? (-:
Got time? Spend some of it coding or testing
PRMan is a fine product, but it has its limitations, as well as its price. There are numerous competitors, many of which use the same Renderman interface but offer more speed and/or more features at a lower price (BMRT and Entropy are[were] notable, and relevant, until Pixar squashed them with the threat of an expensive court case). Brazil, AIR, etc - these RIB-based renderers drop into the same place in the workflow.
Please explain to me why a dedicated rendering device from NVidia would be any better than your average UNIX or Linux machine?
Only if you explain why your average UNIX or Linux machine is better than a Commodore 64 or a PDA, which is also "in essence nothing but processor operations" etc :-) If you listed SPEED in there, you're on the right track.
A modern GPU has far more floating-point hardware than any general-purpose CPU, and it's all geared towards the process of rendering pixels. For certain tasks, one of those expensive dedicated rendering devices from nVidia could be better than FIFTY of your "average" UNIX or Linux machines! Is that enough of an advantage to consider?
Dang, I went and fed the troll, didn't I...
Why would anyone engrave "Elbereth"?
How do you know this? Did you perform benchmark comparing it to a real Quadro?
A couple of years ago I got a GeForce4 4800 and a Quadro4 900 XGL. I performed the required resistor mod and flashed the GeForce4 with the Quadro4's BIOS.
Sure the GeForce4 got recognised as a Quadro4 900 XGL in the Windows display control panel, but when you run benchmarks like SPECViewPerf it was obvious the modded-GeForce4 did NOT perform like a real Quadro4 900 XGL. Capabilities like the HW-accelerated clip planes did not seem to present in the GeForce4, and this made a big difference to the scores I was getting.