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
Sadly, the hardware accelerations that consumer 3D graphics cards do aren't useful for the high quality renderings that are needed for film and television. The needs of games are just different, parially because of the need to render in realtime. So I doubt whether there's much scope for free software to make use of them for that purpose...
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!
Gelato (Italian) == Ice cream
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.
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. =)
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
Seems like ex-Exluna staff (bought by NVidia) is going to kick PRMan's a$$ on hardware level: they tried it on software level with Entropy, but got sued into oblivion by Pixar, now it's time for revenge?
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.
is there any Free software capable of exploiting the general computing power of modern video cards?
I expect that once it suddenly becomes clear that the GPU in a modern video card has serious processing power, that someone will release a version of the SETI@Home client which can use the rendering engine as a processor. Bearing in mind that most computers use their GPU's for a very small percentage of their logged-in life, I suspect there is real potential for using it for analysing on distributed computing projects.
I have been a user for about 10 years. This ends Feb 2014. The site's been ruined. I'm off. Dice, FU
Check out www.jahshaka.com. It's an open source video compositing / FX package that leverages the 3D accelerator chip on your graphics card to do incredible things. This is one to watch, it's definitely going places.
You can download binaries for linux and windows (and MAC), and source tarballs are available for the savvy.
I know, it's not strictly a "renderer", but it employs many of the fuctions of a renderer to create realtime effects and transitions.
"By Grabthar's Hammer, what a savings."
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 hope you know that all high-end 3d packages are available on Linux: XSI, Maya, Houdini, Real3d. And then you have some cool open source, like wings3d, that can cover some a lot of ground on the modeling field. Combine that with blender & yafray, and (theoreticly) you have a complete open source animation studio!
I'll do the stupid thing first and then you shy people follow...
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.
Instead of just using the native 3D engine in the GPU, as done in games, Gelato also uses the hardware as a second floating point processor.
Does this mean that I could eventually use my GeForce to do things like matrix inversion for me?
ART, OGL assisted, now gelato. Sure there is a place but how do I stick a FX card into my several hundred 1U racks either physically or financially. Have you seen the size of these cards anyway ? Sure some vendors (mental images) are leveraging GPU power and have done the same with OGL for some time but unless the GPU calls are handled by calls to the renderer so you hide behind a consistent API it's a waste of your hard earned time getting your pipeline into shape in the first place. Long live GPU but I don't want to be aware of it's presence. PS. I think ATI are actually the smart kids on the block but chose the wrong colours for their marketing hype.Maybe they can get their chips straight onto the motherboard (much smarter).
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.
I think the point is not that it can render just like other engines, but that it can do so at a far greater speed (with a lot more flexibility and features than the PURE card). That would indeed be worth the money to all but the smallest studios - much faster feedback at full quality is an artist's dream, quite apart from the (more expensive) option of using it to accelerate your render farm.
What they don't really say anywhere is *how much* faster it is. There are many factors involved, but if you basically have 16 * 4 * 2 FP execution units running at 400 MHz in a highly parallel configuration, backed by 32 GB/s of bandwidth, there is quite a bit of potential there (~50 GFLOPS vs P4's ~2 GFLOPS?).
For a farm... If, say, it renders 5x faster than a given render machine, then that's 4 machines (and engine licences) you don't have to buy, which would easily cover the cost.
Why would anyone engrave "Elbereth"?
IF anyone's interested, the dino on the http://film.nvidia.com/page/gelato.html page was one of of Entropy's flagship images. Entropy was a pay-to-play renderer made under the renderman Spec by a they guy who wrote BMRT. Pixar sued the company that made both of the renderman compliant renderers, and basically forced them into business with Nvidia, who quickly snatched up the company and paid off Pixar. Nvidia had been trying to come up with a hardware shader language like that of renderman, and thusly came out with the shoddy and less than capable CG shader language. Unfortunately, no matter how good that card looks on screen, it's still only going to be a preview render. Straight 35mm film is rendered out at 2048x1556, and you wouldn't believe how tedious CG work is with every single person above you telling you to correct every little thing. The one thing this will do is help look-dev folk and shader-writers out. They get paid enough as is though. Oh.... you might be interested to know, that most of the renderfarms are now at least 1/2-2/3 x86 machines running Linux, and they have been for the past 3 years. No large studios are using SGIs anymore, but surprisingly a lot of the boutiques are using OSX. I guess that's what happens when Apple takes a hint from MS, and buys(Shake) what they want instead of making it.
-- -- A truly great man never puts away the simplicity of a child
Play around some with pixel/vertex shaders, they are quite easy to get the hang of and plenty powerful. (Even if you don't have the latest and greatest gfx cards.)
Could make a nice addition to GIMP (if there isn't one already).
Comment removed based on user account deletion
So why should Nvidia benefit from Linux, without some reciprical giving ? Hardware programming specs would be enough of a gift.
The Internet's nature is peer to peer - 20050301_cs_profs.pdf
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"?
Admittedly it's not exactly the same things as NVIDIA's solution, but the main component of breaking big movie quality shaders into multiple passes is in ATI's Ashli (http://www.ati.com/developer/ashli.html). The big plus is instead of costing thousands of dollars it's free. Also I noticed everyone is saying agp read backs make this sort of thing useless. The fact is that most of the scenes rendered will take seconds to hours on the graphics card (vs. minutes to days on a CPU). The slow agp reads aren't going to be much of a performance impact in these situations.
For the kind of work I do, a Nvidia Quadro FX 3000G would be best for driving large displays.
With physics in games becoming more and more advanced how long till we see an API for hardware accelerated physics. Not saying you'll be shelling out anymore cash for a ElectricForce FX physics card but have dedicated hardware on graphics cards for physics calculations. Not only could this boost performance but it could combined with pixel shaders and geometric transformations to increase what is possible. Who knows, the GeForce 6800 might be programmable enough to do this already, albeit at a performance hit to the graphics pipeline. There are some pretty incredible physics demos that can be found on the internet everyone's favourite monopoly(Crash Video) has one that showcases their new game development suite XNA. I don't see this level of physics being available in any game any time soon but with hardware accelerated physics who knows what's possible. Even without a standard API to build on developers might implement their own physics acceleration shaders(for lack of a better term) in cases where the CPU is the bottleneck. Ever since the first programmable GPU was release I imagined that they could accelerate more then just graphics and be used to increase the responsiveness of computers.
[...] advanced rendering features: displacement, motion blur, raytracing, flexible shading and lighting, [...]
That sounds like an old Siggraph presentation I saw a decade or two ago when I used to go to Siggraph. Lucasfilm, I think. (The fine sample picture in the article showed a motion-blured image of a set of pool balls in motion.)
When rendering an image using raytracing, there are several effects that are achieved by similar over-rendering processes. I.e. you ray-trace several times varying a paramter:
- Depth-of-field (use different points on the iris of the "camera", blurring things at different distances from the "focal plane".)
- Diffuse shadows (use different points on the diffuse light source(s) when computing the illumination of a point.)
- Motion blur (use different positions for the objects and "camera", evenly {or randomly} distributed along their paths during the "exposure" - ideally pick the positions of the whole set of objects by picking several intermediate times, rather than picking the postion of each object separately, to avoid artifacts of improper position combinations.)
- Anti-aliased edges. (Pick different points in the pixel when computing whether you hit or missed the object or which color patch of its texture you hit.)
As I recall there were about five effects that worked similarly, but I don't recall the other(s?) just now.
To do any one of them requires rendering the frame N times {for some N} with the parameter varied, then averaging the frames. (Eight times might be typical.) Naively, to do them all would require N**5 renderings - 32,768 raytracings of the frame to do all five.
The insight was to realize that the effects could be computed SIMULTANEOUSLY. Pseudorandomly pick one of the N from each effect's set for each frame and only render N frames, rather than N**5. Eight is a LOT smaller than 32K. B-)
Sounds like Nvidia ported this hack to the firmware for their accellerator.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
GeForce 6800 Ultra Review