Linux in 3D
An AC sent in this link about Linux use in the world of special effects and animation. There are one or two errors in the story that make it clear the writer isn't that familiar with Linux, but it's still a good article about the digital effects world taking advantage of a free-beer operating system that runs on commodity hardware.
Avid bought the company away from Microsoft two and a half years ago, and although I don't think they started the very next day on a Linux port, I'm sure it wasn't too much later...
"As a desktop platform, it works great, but as a server platform, there are things missing,"
-- Andy Henderickson, ILM
They must be running that new "Bizzarro Linux" distibution.
--
--
Rare Window - free your photos
Bleah. Didn't get to finish that. Let me continue.
Anyway, Cineon uses a 10 bit logarithmic space, where the 10 bits let you capture that extended headroom. To give you some idea:
Anyway, the reason why film people like 16 bits per channel in their paint programs is to capture this dynamic range. Logarithmic spaces are horrible to work with, so you really need a linear space. You pick a reference white and call that "white". Something like 4096 is a good compromise. This corresponds to "255" on an 8 bit display. Then everything above that is headroom.
You might think that picking 255 as reference white is a good idea, since 0..255 is adequate for computer displays. It isn't a good idea. :-) It captures more headroom than you can capture on film, and you pay for it by reduced precision in the range that matters (reference black to reference white).
As an aside, people often quote the statistic that the human eye can only distinguish so many colours. While that's true, people who say that are using the word "colour" in a different way than computer graphics people do. A certain shade of blue is one "colour" to psychologists and cognitive scientists, but it may map to many "colours" under different lighting conditions as far as a computer graphics person is concerned. Plus, in the real world, you can always add more photons. Clamping your range to [0..255] limits the number of photons that you can deliver to the eye, and so it just doesn't look as good. And that, dear reader, is one reason why I prefer going to the cinema than watching films on TV. :-)
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Not as much of it is due to human perception as you think. It's entirely due to the dynamic range of film.
Film has a huge dynamic range. It starts off black and has to be overexposed "mercilessly" (to quote my boss) before it's totally saturated. Naturally, the full dynamic range is almost never covered in a normal indoor scene. Cameras are sometimes calibrated by holding benchmark grey or white cards in front of the lens. These cards are of a known intensity and expressed in terms of a percentage of "reference white", which roughly speaking plays the role of "255" on an 8-bit-per-channel display.
Now on film, the maximum exposure probably gives you 20 times that brightness. That additional range is called "headroom", and you notice it especially when you look at specular highlights on water or chrome on film.
Naturally up in the headroom, you won't notice subtle differences between brightnesses. One of the most popular digital negative formats, Kodak's Cineon format, captures this by using a 10-bit logarithmic space.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Huh? Most of the animators I know pore over what is the fastest video card for the money at a given moment. (I am one, but I don't pore much -g- ) True, most interactive modeling/animation involves working with flat-shaded or wireframe models. However, working with complex geometry in a scene or trying to view your movement requires as fast a card as you can get. Nowadays, it's practical to work with a $200 graphics card, which wasn't true 5 years ago. However, it's still the case that the faster card you can get the better.
Pixar has not, however, released modeling, or animation tools.
That's because they don't make any for any platform, or at least nothing major. They are known for Renderman, their renderer.
In fact, as far as I'm aware, Houdini and Blender are among the very few 3D 'suites' out there for Linux. No 3DS Max, no Lightwave, no ElectricImage... not much is being done on the 'graphics workstation' side of the equation.
Yes there is. Maya, the most popular 3D app used by high-end studios, is in the process of being ported to Linux, as well as to OSX. (I believe the renderer is already released for Linux.) Softimage XSI, another highend app, is also in the process of being ported.
When the Maya port is fully there, 3D on Linux will really start to be more widely usable.
Of course, this is a fair chance to point out some of the differences between types of 3D, and how Linux is used on it.
Most users know of 3D as in the type that Gamers expect - real-time, hardware-accelerated, high-framerate polygons.
However, Houdini (and similar software) is nothing like it at all. None of it is real-time; not even close, really. A 'faster' video card won't help much here, as modelers and animators typically work with flat-shaded or wireframe models-- not fully-rendered scenes like in Quake III.
As a workstation, Linux offers an inexpensive workstation solution for the artists to work with. Many who work with 3D are already familiar with IRIX. With the multi-million dollar budgets these shops are used to having, they go with what works; not necessarily what is cheap. As far as the animators' needs go, they just need a stable, reasonably-performing system and some imagination.
But when it comes to rendering - that is where Linux has really begun to shine. Linux can cluster wonderfully and inexpensively - which has been used to great effect by animation shops (such as the famous Titanic example). Even Pixar has released their RenderMan rendering software for Linux.
Pixar has not, however, released modeling, or animation tools. In fact, as far as I'm aware, Houdini and Blender are among the very few 3D 'suites' out there for Linux. No 3DS Max, no Lightwave, no ElectricImage... not much is being done on the 'graphics workstation' side of the equation.
But rendering tools - from the lowliest student's hobby to Pixar's RenderMan abound in Linux. Again, the vast majority of what is being done in 3D on Linux is a clustered number-crunching supercomputer; not as a Desktop OS on a graphics workstation. But the time is coming.
-- Sometimes you have to turn the lights off in order to see.
I mean, maybe they don't want the help or something, but the source code is available, and I think it's an opensource license. And it's being bundled with professional systems too. But you hardly hear anybody ever talking about Linux as a serious semi-professional or indy-film alternative to expensive alternatives like Adobe Acrobat.
Kudos to the Broadcast 2000 developers, they deserve way more recognition than they recieve. Linux can do not just 3D and animation, it's already a decent system for non-linear video editting too.
Jeremy McNaughton
------ Live simply so that others may simply live.
The 16 bit "hollywood" version of gimp has been available for about 2 years.
http://film.gimp.org/
The GEGL library that was written to support 16 bit images and it will be integrated into gimp 2.0.
To answer the above question about what 16 bits refers to, it means that an image has 16 bits per channel of color, 16 red, 16 blue, 16 green, equaling a total of 48 bits, but in film it is refered to as a 16 bit image.
We have to render all our images out in the 16 bit format(although many get away with 8 bit images). Also all the texture we apply in cgi have to be 16 bit for film.