Working in the world of visual effects (
VFX) means dealing with a virtual hodgepodge of assets that get created. From
3D renders, proprietary files, still images or even video footage straight from a camera, there's a lot of file formats out there that can be used with some measure of success in just about any
VFX software. Despite this, it doesn't really matter
what compositor you're using, you can either
cause yourself a lot of time and frustration or
save yourself a lot of time and frustration depending on what file format you choose to work with on a daily basis.
Always Render Image Sequences
Before taking a look at some of the file formats themselves, it's important to immediately remove all of the video formats from this equation. One common misconception is because a compositing program deals with moving images means the only file formats that should be used in a compositing program are video files like MOVs or AVIs.
While video files have their place and
it's important for you to know about them because you'll no doubt have to work with them at some point, generally speaking that place is not in a VFX pipeline. There are numerous reasons for this, but most of them can usually be boiled down to one really big reason: Renders tend to crash. As frustrating as it may be, it doesn't matter if you're using a budget system at home or a powerhouse workstation, every VFX artist has had renders crash.
If you look at the image above, which of the jars would you say is complete? The best way to know if a jar has everything in it is to put a label on it. The label tells you both of the jars should have 200 jelly beans in them, and it isn't hard at all to tell which jar actually has everything in it that it is supposed to have.
While obviously over simplified, this is basically the same way a computer works. When software creates a file, think of it like jelly beans being put into a jar. As data is put into the file by software, there is a "label" that keeps track of what should be there.
This "label" essentially amounts to an index of the data in the file. Just like you're able to glance at the image above and see which of the containers isn't complete by looking at the label, software knows when a file isn't complete when either the data inside doesn't match the index or the index itself is missing completely.
This is important to know because when you're rendering out a video file, all of that data is going into one really big file. If at any point the software has an error that causes the render to crash, the "label" won't match what's inside the file and the software will know something is missing. While it may be easy to add the missing candy in a container, as in the example above, for a computer the only way to append data to an incomplete file is really to just start over. This means re-rendering the file.
If you've rendered anything before, you know rendering can be quite a time-consuming task. It's common for a single frame to take hours to render. Because a video file is a single file that contains
all of your project's frames, any time there any errors that cause an incomplete file it, means you need to re-render the
entire video file.
Then again, instead of rendering out one really big video file you can render out a bunch of smaller image files where one image file equates to a frame of your project. When the inevitable happens and the render crashes, you'll need to re-render the entire file exactly the same as if it were a video file, but instead of this re-render being
all of the frames it's just the image files for the frames that crashed.
So let's do some simple math to see why all of this means you need to be rendering image sequences instead of video files.
Let's say you're rendering out a sequence that is 30 frames. If each frame takes one hour to render, that's 30 hours to complete the render. Until those 30 hours are done, the file is still incomplete and is still getting data put into it. If frame 29 has an error causing the render to crash with a video file, that means you'll need to re-render the first 28 frames that didn't have any errors in order to get the file to complete. That's 28 hours wasted.
In the same scenario with an image sequence, after each frame was rendered the image file for that frame would be completed before moving onto the next frame. So you'd only have to re-render the last couple of frames (frames 29 and 30). Of course that's a simple example, but by rendering image sequences you're able to pick and choose which frames you want to render without having to render all or nothing as you do with a video format. Rendering image sequences can quickly add up to a lot of time saved simply by changing the format you choose and, by extension, could easily mean the difference between the success or failure of a project hitting its deadline.
Common Image File Formats
Whether you're rendering out of 3D software or just rendering down smaller compositions in your compositor, there are countless image formats out there that can be used with VFX software. Which format you use can really just be personal preference, but there are always pros and cons to each file format that you should know about. So let's take a look at some of the most common formats you'll need to keep in mind so you can decide what will work best for your projects.
It's important to point out there are quite a few proprietary formats that can be very useful depending on your workflow. These weren't covered simply because you're probably going to need to use them if their native software is in your pipeline. For example, PSD or AI files from Photoshop and Illustrator are popular enough formats that they are accepted by a wide range of VFX software. However, if Photoshop isn't in your pipeline, you probably don't have much benefit to rendering out PSDs. For that reason we're going to focus on non-proprietary, standard image file formats.
OpenEXR (EXR)
The EXR file format is an incredibly powerful image file format that is both high dynamic-range (HDR) and surprisingly space efficient. It was originally created by
ILM specifically for use in the VFX industry and, since it's creation, has quickly caught on as an industry standard format supported by most high-end 3D and compositing programs.
If you're rendering with a linear workflow and want to save space while maintaining quality with
lossless compression or rendering a lot of passes, the EXR file format is a great option. While it supports 32 bits per channel (bpc), it's more common to use half of that at 16 bpc. One reason you may want to use 16 bpc instead of 32 bpc is simply because half of the data takes a lot less time to render, and for most projects you won't notice much of a difference in the output quality. Another great feature of the EXR format is you can embed multiple render passes into a single image sequence.
You can
learn more about OpenEXR on it's site.
Targa (TGA)
TGA files are very common in the industry because they can still offer great quality and are very widely supported. This file format was originally created by Truevision. And although TGA files aren't HDR, they are a solid choice if you're not working in HDR and you're not sure what other format to use.
When you're using the TGA format, you'll most commonly run into an option to save in either 24 or 32-bit. That extra 8 bits is the alpha channel; so basically a 24-bit TGA includes red, green and blue (RGB) channels whereas a 32-bit TGA file will include red, green, blue and alpha (RGBA) channels.
You can
learn more about the TGA file format here.
Tagged Image File Format (TIFF)
While this certainly isn't how it originated, the easiest way to think of TIFF files is as a merger of EXR and TGA files. Actually, the TIFF file format was originally created by a company who was subsequently bought by
Adobe for use in the graphic design industry.
Like TGA files, TIFF files are used widely both inside and outside of the VFX industry. And like EXR files, TIFF files are HDR that can support up to 32 bpc. When using TIFF files, you'll have the ability to choose from various compression types including lossless compression. Just be aware that not all software will support the various compression types TIFF offers. So which one you choose really depends on what's supported by the software you want to use. If you're not sure what compressions your compositing software supports, you can always go for uncompressed for the widest range of support. Unfortunately though, uncompressed TIFF files can take up quite a bit more space than either TGA or EXR files. For example, when rendering out an image sequence it's perfectly normal to see 32-bit (RGBA) non-HDR TIFF files that can almost be five times the size of comparable PNG files. This can really start to eat away at hard drive space unnecessarily when you're rendering out a lot of sequences.
You can
learn more about TIFF files here.
Portable Network Graphics (PNG)
While it is commonly known for its use in web design, the PNG file format is actually used quite a bit in the VFX industry as a solid alternative to the TGA format. Like the TGA file format, a PNG file isn't HDR, but it can support 32-bit images with up to 8 bpc for each of the red, green, blue and alpha (RGBA) channels.
By far the biggest benefits to using the PNG file format as a VFX artist is it can offer alpha and lossless image compression, all while maintaining a relatively small file size. If you've got a lot of image sequences that you'll be
rendering out of a tool like After Effects, PNG files are a great alternative to the slightly larger TGA files.
You can
learn more about the PNG file format on it's site.
Image File Formats to Stay Away From
As previously mentioned, there are a lot of file formats out there. Just like a lot of these lend themselves to being beneficial for VFX artists, there are a lot of formats you probably should avoid using regularly unless there's a good reason to.
JPEG
The JPEG file format is one of, if not the most, popular image format on the internet. As a result, it's something every VFX artist is going to get from time to time either as reference, stock or even assets to use. Unfortunately, the JPEG file format doesn't have the ability to be lossless. So every time a JPEG image is saved, it loses a little more quality. They might look great on the internet, but that doesn't always translate to looking good in your VFX projects. Use JPEGs with caution and, if possible, try to find a lossless file format.
GIF
Like the JPEG format, another common file format on the internet is the GIF file format. Technically, GIF files might seem like they'd be a good file format for VFX work. They can be uncompressed (or there's some lossless compression support as well), have alpha channels, and are relatively small in size. However, the algorithms behind the GIF file format simply don't support the color range required for VFX work. Hence, most GIF files you'll find can't retain full photographic range of colors, and the quality suffers pretty significantly. If at all possible, you should try to avoid the GIF file format for your VFX projects.
Finding the Format That's Right for You
You should have a good idea now of why it's important to stick to image formats for your day-to-day workflow, as well as what are some of the more common file formats being used in the industry today. The next step is for you to figure out what file formats will work best in your projects. Do you need the level of flexibility that 16 bpc gives you? If not, it may be wasted time and space to render out using a format that supports it.
If you're still having trouble deciding on what file formats can work best for you, you should see some of these file formats in action. This can really help you see how they're used in various software and what some of the workflows are for using them. To see many of the file formats you've just learned about, watch the
Transforming Robot Production Pipeline and the
'Infiltrator' Production Pipeline, as they're used for both rendering out of 3D software and inside the VFX software. Of course, you can keep learning with
VFX tutorials.