Friday, April 29, 2011

File formats for multi pass rendering compared



There are many formats that can be used for creating multi-pass renderings from 3ds max, Maya, etc. Here are some of the pros and cons of these formats laid out in comparison.


TIFF: 16-bit fixed point. Lossless. This is pretty good standard to use. Mostly used in print media. I find this good to send to the 3D dept/tracking as the format is a little more optimised there. Nuke supposedly doesnt play with them as well as .EXR/DPX, but I've yet to see serious issues with it.

Targa: 8-bit Lossless Another efficient standard, but with less bit-depth. I hardly ever use this format because I am on a 10-bit+workflow, but I'd say that it would be my choice for handling 8-bit files.

HDR: 24 bit is also an option which has great range but not as many features for the compositor per say. Extended dynamic range but lacking an alpha channel.

DPX: 16-bit fixed point Lossless. Pretty much THE standard at the moment. It can kinda support 16-bit images in two ways. Most DPX's that you find will be 10-bit. So they can use a cineon LUT to squeeze 16-bit into a 10-bit range... This isnt really as cool as it sounds - cause you're still throwing away data. Also - the file container for DPX can go as high as 16-bit.. So it is possible to recieve a Linear 16-bit fixed point DPX. Nuke can read them and Resolve can write them but not sure about other software packages. It seems to me that most DPX's are 10-bit either through historical reasons, or lack of software support. (Capable of storing minimal metadata) Good for real comp work!

EXR: 32-bit floating point. Brilliant and adjustable. Lossless. (And with some lossless compressions as well) capable of storing any metadata you care to add. bouding box can be larger than the frame. So move something off screen, render a frame, perform the inverse transform to the rendered frame, and the object can come back on. (Good for precomping.) The floating point info is good for things like position passes, depthmattes, HDRI and any other images that require more precision than 16-bit offers. Offers more layers than just RGBA. about 1024 'channels' as they are called, which means that you can ship all images associated with a project in one container. (Also comes in 16-bit half-float... which is my preferred flavour as you very rarely truly need 32-bit).

MOV: Many many dissadvantages to this format. But its a good format to show a client stuff in remotely. But never work in it. They have had on and off again LUT issues, can reduce renderfarm operability, and if a single frame goes wrong... there goes your entire render sequence.

JPEG: 8-bit Lossy for the web only... Never to be used for professional compositing/comping unless its the only file format the image you need to comp is available in (Ie: it's all the client gave you, and has) Has a very small filesize. (Has no alpha channel that I am aware of, which makes it unsuitable for serious comp work)

FILE SIZE equivalents for the same length sequence:
TIFF:104 mb
DPX: 38 mb
TGA: 26 mb
HDR: 25 mb
EXR: 19 mb


Conclusion:
The clear winner of this format comparison is the openEXR format in my mind. The ability to have all passes contain in one file is beautiful, especially considering if you have a 10 frame sequence with 10 passes each suddenly you have 100 frames for less than a second of compositing.