SIGGraph and Open Source 193
There are plenty of examples of open source and the graphics community getting along grandly: Gimp and CinePaint (aka FilmGimp), ILM's OpenEXR, and projects like Open Scene Graph. Linux, in particular, has made spectacular inroads: nearly everybody uses it for rendering, and many (most?) use it as their desktop OS of choice. In the RenderMan user's group (I'll get into RenderMan more in a minute), for example, somebody asked how many people used Linux as their main OS. Plenty of hands, and some approving chuckles all around. Mac OS X? A few hands, and woots. Windows? No hands at all -- and moreover, an handful of boos, followed by everybody cracking up as they realized the whole community was abandoning Microsoft wholesale.
But then there's the other side. All the major visual effects and animation studios -- ILM, Pixar, Dreamworks, Digital Domain, Blue Sky, Disney, and so on -- have a team of programmers in-house. Five, ten, two dozen, or more. They're the ones that'll write the software that does special rendering algorithms for Shrek 2, or an animation control system for Mr. Incredible, or produce massive crowd simulators for Lord of the Rings. Things that commercial software doesn't quite do -- or that nobody else has tried to do, or even thought of. Things they need to do just so. Things they need to do now.
Everybody has a ton of custom software written -- often good software, with flexible frameworks and clever hacks. Moreover, they don't want to rely any more than necessary on commercial software, because if ILM finds a bug in Maya that holds them up or slows them down, they best they can do is pay Alias to fix it fast (i.e. weeks) and then have hundreds of animators waste thousands of hours time working around it for weeks. And worse, if Digital Domain buys Alias and decides they'll keep new versions of Maya to themselves, ILM is simply screwed, in a big way. If they want to get a particular feature in Maya, and a plugin won't cut it? Well, that's even harder -- and involves more money and more time.
So ILM writes their own stuff whenever they have to, and whenever they can. And Digital Domain writes their own stuff. And Dreamworks writes their own stuff. And Disney writes their own stuff.
And most of it is all the same stuff. Fluid dynamics? Hair? Subsurface scattering? Muscle-and-skin systems? Crowd control? Dozens of topics -- and every studio pretty much has pretty similar, rather redundant code to do 'em all.
These studios aren't in the business of writing software, they're in the business of making movies. So why are they spending their time and money writing software? Because they have to; it's a Necessary Evil.
So, what if they all worked on Open Source stuff instead? Look at what I just wrote. Every word is a reason to go Open Source. No drawbacks, all upside: no lock-in, you can fix stuff, you can add stuff, you don't have to wait on anybody else, and plus, you can do all this while also using what others have written.
The knee-jerk reaction that may be some executives' first objection: our code is a strategic advantage, giving it away would be throwing away money. If we can do hair and our competitors can't, we'll make better films then they can (and, if it's a visual effects studio, we'll win contracts based on that unique ability).
Bull honkus. If your competitors need hair, they'll write hair software, no problem. Another quote from the Pixar RenderMan user's group, this one by a RenderMan developer (paraphrased): "this is based on the subsurface scattering papers from a couple years ago. Everybody does this, based on those papers." Nope, I don't see strategic advantage there: I see waste.
It is, as they say, a win-win scenario; the studios contribute their code to Open Source projects, and everybody helps make that code better. ILM started it in a small way, with OpenEXR, and it worked: OpenEXR is *the* format for high-dynamic-range images, no questions asked. Did it benefit ILM? You betcha: major packages everywhere (Photoshop, RenderMan, etc) either import/export OpenEXR now, or will soon. Pixar even contributed new compression code.
So, a great scenario, and proof that it works. Why hasn't it happened in a bigger way yet? Fear of the unknown. But listen close, and you'll hear a flood coming that could change the landscape -- and it's hard to divert a flood.
That leaves only one question: how will it start? Well, it could begin with open source projects becoming valuable to studios, as started happening with Gimp (though here I'm talking more about advanced 3D animation, simulation, and rendering; Blender's great for what it does, but medium-to-large studios aren't its intended audience; it's not going to displace Maya any time soon, because it doesn't offer anything that Maya lacks as far as the studios are concerned). Or it could start with a studio making a bunch of their custom in-house software Open Source (like ILM did with OpenEXR). Either way, it's up to us as a community -- either to write the software or to sell the concept.
I'd suggest that a great place for all this to start would be with Pixar's PRMan (PhotoRealistic RenderMan, these days often called just RenderMan). And note I say this as a shareholder. Selling RenderMan and related software accounts for less than 5% of Pixar's revenue; the real reason -- the *only* business reason -- they still develop it is for the other 95% of the company to use. If open-sourcing it would bring in collaboration and improvements that would make them just 5% more efficient in generating movie revenue, doesn't that justify the decision right there? And of course that's not counting those who would still pay for service contracts, or the reduction in development costs that could come from the rest of the community helping with their R&D (the budget for which, BTW, surpasses their software revenue). RenderMan has always been a product ahead of its time, and that's why -- despite Pixar's belligerent and hostile use of patents and close-held IP -- it's still the golden standard in this industry. The RenderMan protocol and API was intended fifteen years ago to be a renderer-independent standard, the PostScript of the 3D world. That dream died because of Pixar's unwillingness to release IP: it became difficult or impossible for others to implement that standard officially, or at all, because Pixar grasped the it so tightly (case in point, ExLuna: their lawyers summarily killed what was the best chance in years of having a RenderMan-compliant renderer with new and different functionality, complementary to PRMan). But the renderer -- PRMan -- doesn't have to die through the same mistake, even in the face of an ever-shrinking market share and competitors with the advanced global illumination algorithms PRMan lacks.
But that's not to say Pixar is the only -- or even the best or most likely -- option here. They most certainly don't hold all the cards. So, don't sit back and wait for Pixar or another studio to start the ball rolling: we need to give it a push.
linux? WOW (Score:1, Interesting)
If I had known I would've purchased a Nvidia card over an ATI.
Re:WTF are you talking about? (Score:5, Interesting)
But I'll grant you that I am perhaps indulging in a bit of wishful thinking.
Roll your own (Score:3, Interesting)
Here's the thing.... Pixar isn't going to open source Renderman. They just aren't. The best bet is to get a group of people together and create their own open source version of it. It's been done before, and it can be done again.
A (small) case in point for open-source tools (Score:5, Interesting)
Why did I start using these tools? Maya's Fur renderer was (and still is) a complete piece of shit. No offense to anyone who's actually gotten it to work well, but... damn. If you've ever used it, you'll know what I'm talking about, specifically in regards to the lighting, and trying to match it to the rest of your scene. And yes, I've tried Maya 6 rendering out Fur in Mental Ray - something about trying to allocate several gigs of RAM just for the Fur, where PRMan would use 800 MB for the whole scene, turned me off from that. And RAT includes a plugin to build Fur out of RiCurves primitives. Perfect match, right? Of course.
Well, it was lacking a couple of features. Specifically, Attractor Influence Start and Influence End (specifying how far along the length of each hair dynamic attractors would affect the curve direction). Thankfully, Pixar decided to throw in the code for the mtorFurProcedural DSO with the toolkit. So I added the 6 (or so) lines of code needed to implement those features, recompiled, and it now works perfectly, exactly the way I'd expect it to.
And then the shading model being used wasn't giving me the results I needed. I took a look at a paper (from a previous SIGGRAPH) on the fur shading used in Stuart Little, specifically in regards to mixing the underlying surface's normal with the hair normal. Sounds like a good idea, think I'll try that. Oops, the plugin doesn't pass that information to the shader. 10 lines of code later - a new shader variable, surface_normal, has been added. And after modifying a shader to take advantage of that (loosely based on the example code in the paper), the shading looks infinitely better than anything I EVER got out of Maya. Score another point for having the source.
Unfortunately, there was also another bug, this time in the mtor_maya5 plugin (which, being the bulk of the product, is NOT open source). I had to reimplement the command that the mtorUltraFur RIBGen plugin was using to dump the surface information (for each uv coord: x, y, z, normal vector, u vector, v vector), because its handling of trimmed NURBS surfaces was broken. That was irritating, but made possible because I had the source to the plugin and was able to change the command that it was calling (to my own plugin's name). (Though it would've been easier if I had the source to the mtor_maya5 plugin as well...)
So, because I got the source with the tools, I was able to very quickly fix the problems that showed up, and tune them to do exactly what I needed them to do.
With 220 million transistors, do we need Intel? (Score:3, Interesting)
New display tech at Siggraph (Score:4, Interesting)
That high-dynamic range monitor was far and away the coolest innovation (it's contrast range is like, 300 times higher than ordinary monitors. When they set it to maximum brightness it actually takes your eyes a moment or two to adapt when you go from a bright part of an image to a dark part).
And modern graphics cards actually have the precision to make a huge gamut like that useful. Hopefully they'll take off and we'll see games start to use it. It really made all of the other monitors look dim and washed out.
There were a bunch of different naked eye 3D displays. Nothing fantastic, but still pretty cool, although headache inducing if over-indulged in. I'm guessing that they'll be used for trade shows...
Another group was showing a projection system with 6 primary colors.
large color gamut display [siggraph.org]
They ganged up two sets of projectors. One with straight up RGB, and another with CMY (I think!), and by overlaying the two they were able to get a much wider color gamut than traditional RGB monitors. It was very hip, but I have trouble imagining it ever leaving a research lab.
There was also some cool stuff done by registering lots of projectors together to get very large, very high resolution displays, without any visible seams. It would make for a cool game room (assuming that you had a machine that could drive a 4000 X 12000 pixel display!).
Still the high dynamic range monitor is the one that I'm lusting after...
You just don't get it. (Score:4, Interesting)
You just don't get it.
Damn zealots are boring.
I'll take one example:
"case in point, ExLuna: their lawyers summarily killed what was the best chance in years of having a RenderMan"
Um - no. PIXAR killed ExLuna. They sued them into the ground. Then even took the nasty step of not only suing the company, but suing the founder (Larry Gritz) and others. Hello - software patents? And even though ExLuna claimed they weren't violating them, it was easier to settle than fight with somebody who could/did crush them like a bug.
(FYI - ILM considers OpenEXR to be a big failure. They've gotten pretty much zero contributions back from anybody. It's only take take take. It still helps ILM because they're getting most other packages to implement the format so they can make their pipeline more unified, but whether that was more or less effort that open sourcing the package in the first place is subject to debate).
I'm not even going to refute the rest of your points because it's a waste of time. You don't get it.
Re:Roll your own (Score:4, Interesting)
Said creator of BMRT (Blue Moon Rendering Toolkit) then left Pixar, commercialized BMRT, was sued into oblivion by Pixar, and the tatterd remnants of BMRT were then picked up by nVidia.
BMRT is now off the market. Which is too bad, because it was entirely NOT like the traditional renderman rendering engines. It used ray tracing with caustics instead of REYES.
The problem is, there's certain things that Pixar owns patents for and has been getting progressively more predatory about. So there's a limit to how successful Pixar will let the other renderman engines get.
Even though, of course, they don't make much money off of it.
Re:high dynamic range display (Score:3, Interesting)
Actually, yes. The poor man's way [debevec.org] (for stills at least) is to take a number of shots with the camera a few stops apart to capture an extremely wide exposure latitude, and recombine them in HDRshop.
There are also a number of companies making HDRI backs for digital still cameras that automate some portion of this.
For motion, a beam splitter and a few calibrated and synced cameras could be rigged up in a similar way, although I've not heard of anyone actually doing this.
The idea isn't to actually produce end results beyond the exposure latitude of film, but rather to be able to color-correct more agressively without banding, clipping, or losing detail.
Besides, an HDR display is targeted mainly at compositors who actually want to see a film-like contrast range on screen so they know better what the end result will look like; much the way that film sound editors do the final mix in a theater-like room to get the best idea of how movie house acoustics will sound with their mix.
Companies don't know... (Score:1, Interesting)
Re:rendering software not a competive advatage? (Score:3, Interesting)
So I just wonder if that could be a reason for the big studios not to want to go whole hog into open source. I.e. it could open up the sluice gates to a whole new flood of competition.
Well, actually, I suspect the real reason they won't go crazy open sourcing everything in a hurry is just that most of their code so tied into huge knots. After you peel off a few relatively modular pieces like image libraries, you're left with a huge intertwined mess. You can't really open source your "physics engine" because it depends on A,B, and C, which depend on D,E,F,G,and H, which depend on...etc. Whereas with the OpenEXR example, it's just an image lib, and image libs are pretty easy to encapsulate. You've got read() methods that give you an array of numbers, and write() methods that take an array of numbers, and that's about it for the API. A character animation system, on the other hand, well that's got to tie into all kinds of subsystems - meshes, deformers, bones, physics, rendering, etc. It gets pretty messy, unless you set out from the beginning to make components that could be used outside of where they were developed. And that takes longer to do, so what are the chances any of these movie studios would have bothered?
Re:Did You Go To The Panel? (Score:3, Interesting)
-spc
Re:And then, on the other hand... (Score:2, Interesting)
> the sale of Renderman. Why give up that revenue
> stream?
Because that's not their core business; taking a risk with 5% of your revenue stream that could pay off against the 95% is a gamble worth considering.
And open sourcing part of their technology (e.g. PRMan) doesn't mean they'd have to give up the entire revenue stream, not by a long shot: those that now pay for PRMan would likely continue to pay for development, bug fixes, and other support -- not to mention secondary software like MTOR and Alfred. But this is the OSS argument in whole cloth, and too big to argue here -- many others have written eloquently on the subject.
Re:You're wrong, though... (Score:3, Interesting)
Re:I think we went to different conferences.. (Score:3, Interesting)
The 3D industry moving to Linux (Score:1, Interesting)
Since the demise of SGI and the later migration of the industry to Linux they opened the Linux/Pandora box and want to use a proven and reliable Linux distribution. One of the options is to use a couple of distributions as a guide (Fedora Core 2 & Suse), if any of their programs works with any of these distributions, then a software vendor must make the program work on the other distributions.
I'm sure someone from the companies involved can talk more about this.
Titus Maledetto