Skip to main content

02 - The VFX Pipeline in Brief

The VFX Pipeline in Brief

TLDR: Projects (a.k.a shows) have sequences and assets. Sequences are made up of shots. Shots can contain assets. Assets and shots have certain tasks that result in resources, which can have many versions.


The concept of a visual effects production pipeline represents the segmentation of VFX work into different steps, where each step serves as input for the next and all steps are interconnected to create the final result – a VFX shot. This allows artists to simultaneously collaborate on creating assets (e.g. characters, props, environments, etc.) and shots by individually focusing on one specific step of the pipeline. 

Assets and shots consist of resources, which can be versioned, which means they can get gradually improved over time. Once the initial version of a resource goes through the pipeline, each artist can work on their respective task and contribute to the final result straight away, rather than wait for the preceding artists to complete their tasks first. This is done to increase teamwork efficiency and improve the overall quality of work within the project’s limits, like schedule, budget, etc. 

A clearer way to illustrate this is to imagine three artists – a modeler, a rigger, and an animator – creating a simple walk cycle animation for a character asset. First, the modeler creates a basic model resource made out of, let’s say, cylinders and a sphere. One big cylinder for the body, four elongated cylinders for the arms and legs, and a sphere for the head. The modeler has effectively created a very crude first version of the model resource of the character asset. By doing so, he has allowed the rigger to start putting in basic joints required for the movement of the cylinders representing the character’s body parts. Thus, the rigger creates the rig resource of the character asset. In turn, the animator can start posing the character rig and creating the walk cycle animation resource of the character asset. 

In this scenario, notice how the model of the character is nowhere near finished, yet all three artists can now work at the same time. Whenever the modeler updates the character asset with a more detailed model, the rigger can add more joints to the rig, which will allow the animator to create more fluid movements. As a result, the complete character asset, which contains the model, the rig and the animation cycle, can be added to any shot. The animators working on a given shot can then animate the character and create shot-specific animation resources based on the requirements of the shot.

Why do we need to program any of this?


The creative process illustrated above sounds very straightforward, why can’t artists just communicate to each other and create, update and pass around their files manually? It sounds very simple when we talk about three artists working on one character asset, but what if we consider hundreds of artists working together on hundreds of assets and shots? The more we rely on humans organizing themselves and manually moving data around, the more we invite chaos into our production because, as amazing as humans can be most of the time, we are also unfortunately sloppy and imprecise in our actions the rest of the time. Artists need only care about crafting their best art and not about keeping track of who has done what, when, where any resulting data files are located and how these are to be used. 

It’s a pipeline developer’s job to hide all of this organizational work and data management under the hood and create a seamless creative environment for the artists. This saves effort and time for the artists and the studio as a whole, and time equals money in any business. What’s more, having an efficient pipeline system means that we can standardize our artists’ work environments and software, ensuring that everybody in the studio is “on the same page” and using the same tools and workflows. We can also use our pipeline as a platform for scripting and automating pretty much every boring and repetitive task that artists would otherwise have to do manually in mind-numbing agony. Luckily, programming and databases are great tools to help us handle all of this… in style!

What does a typical VFX pipeline look like?

Generally speaking, this is how we can represent the core steps involved in a typical VFX pipeline:



This will look very familiar to anybody, who has worked at a visual effects studio, since the outlined pipeline steps are standardized throughout the industry. For 3D animation productions, we would have slightly fewer steps, mainly those concerning processing live-action film plates.

In this guide, we will be adopting an abridged version of the typical VFX pipeline, highlighted in blue in the diagram above. We will focus exclusively on post-production, taking a look at modelling to rigging, rigging to animation, animation to lighting/rendering and finally compositing onto a matte painting. For demonstration purposes this pipeline is linear and straightforward enough to understand, while the concepts and workflows involved will remain valid if we were to expand our system to cover the entire pipeline spectrum.


Comments

Popular posts from this blog

03 - VFX Database Design

VFX Database Design TLDR : Python can be used to create and manipulate relational SQL databases to represent all kinds of data involved in VFX production - artists, departments, projects, assets, sequences, shots, tasks, resources, versions, etc. In order to organize our data and easily keep track of our assets, we will use a relational database. While some smaller studios might only use a directory structure system or a NoSQL database such as MongoDB, good old relational SQL databases are by far the most widely used and arguably most efficient way to manage data in a VFX context. I’m not claiming this is the best road to take, but if it’s good enough for most global VFX powerhouses – it’s good enough for us! Note that throughout this entire guide, I will be focusing on clarity and functionality, rather than hardcore programing efficiency and ultra-fast performance. Before writing any code, we should consider what our database should look like conceptually and what tables

01 - Before We Begin…

Before We Begin... TLDR : Python is widely used in making movies. This guide is meant for those with at least a basic understanding of Python. You will need to download 3rd party tools to follow along with this guide.