You are working on a 3D animation project and the deadline is in 2 days. You have done all the modeling, texturing, lighting, rigging and animation and now its time to render your final output. You set up your render and it informs you that your sequence of images will be ready in 3 days.
What’s going on here? Read on to learn why 3D rendering takes so much time and what you can do about it.
In basic terms, the reasons for 3D rendering taking so long is its a memory intensive process, your computer specifications may be low, and you may not be optimizing all of the things in your 3D scene, your render, and your output. However, there are more than a dozen other factors to consider when trying to figure out why your 3D rendering is taking forever. We will get into all of them but let’s start with the basics of how 3D rendering actually works.
3D rendering is the process of creating a 2D image from a 3D scene. Its sort of like taking a photo of the real world, except its a virtual world. If you are rendering a movie, it may be a sequence of still files like .tiffs or one movie file such as a .mov, .avi or .mpeg. An individual frame in a movie may take a second or several days to render, based on many factors.
Now let’s discuss this in detail and then take a look at possible workarounds.
Factors Affecting Rendering Time
Its true that the amount of computing power available to us right now with multi core processors and lots of RAM is literally tens of thousands of times greater than 30 years ago. But as I mention later on, we have seen an increase in image format output and quality requirements and viewer expectations.
CPU speed helps with rendering time. So does the type and number of GPUs if your system is capable of using them for rendering. In general, the higher the computer specs the better it will be for rendering. There are many workstations specifically designed for 3D work, but rendering the actual output quickly has its own demands which a workstation may or may not fully satisfy. More about this later.
Let’s look at factors that most contribute to rendering times.
A photorealistic render of a single frame can take days depending on the detail and settings involved. When you multiply this by 30 frames per second for movies you get some staggering numbers. As the name suggests, such images come close to real life and this requires every detail to be perfect. Shortcuts here would really stand out. If you are doing photorealistic rendering on a large scale rendering time will be an issue.
Computers use various methods to generate each image, or still frame in a movie. One of them, raytracing, is a slow process. To make things really simple to understand, it simulates actual light rays from light sources that hit the camera. This makes your 3d scene act like the real world, and to those familiar with 3d animation and how its created it makes perfect sense. We are simulating real phenomena such as light rays in a “real world” 3d scene. Not surpisingly, playing God is memory intensive.
Reflections and Refractions
Speaking of memory intensive processes, reflections simulate how light rays bounce off surfaces and refractions how light rays go through surfaces. We are playing God again since we want the resulting images to look like the result of real world physics. Bouncing lights rays around the scene also needs to be optimized for output. You can lose a lot of rendering time if your rays are getting lost or if you set things up to use too many or the options are just not set optimally. With experience and online or book research you can master this, but its also specific to the render you use so consult its manual.
There are usually two types of shadows in a 3d program, depth map and ray traced. Depth map shadows are much quicker to render but come with their own issues, such as resolution and artifacts. Basically a depth map is created from a light to each shadow casting object. Depth map shadows can be modified to prevent artifacts and still provide a good quality.
Raytraced shadows on the other hand are not precomputed; they are rendered one pixel at a time during the actual scene rendering process just like other raytraced items. Be very careful about using raytraced shadows. Even film production houses use depth map shadows.
This is common sense to many but lets go through it to make sure we understand. Required output size has grown over the years from 720×480 pixel standard definition video to 4k (4,096 by 2,160 pixels) and 8k (7,680 by 4,320 pixels). Images with higher resolution take longer to render since its done one pixel at a time.
Of course this doesn’t have as much of an effect if we are talking web 3d animations including animations for 300 pixel wide banner ads, but the web is catching up. With monitor sizes getting larger and higher resolution, and people now projecting their web content onto 80 inch tvs and 100 inch projection screens, the output requirements for the web are changing as well. While screen size and screen resolution are two different things, if you keep resolution the same and increase your screen size by a significant amount your image will lose detail.
Physics Engines and Dynamics
Physics based animation is a great way to speed up your work and make realistic motion, whether its blood cells in a capillary or fluid simulations. However, since the computer has to calculate all the collisions, and sometimes there are thousands in a scene, instead of you animating by hand, much of its computing power is used up here.
How To Shorten Render Time
Now that you know what is involved in creating a 3d animation or 3d still and see how memory intensive it is, lets look at some ways we can deal with this issue.
3D will always be 3D (and we are glad because it helps us create a real-like world) but its much more complicated than 2D in terms of calculations. Also, in 2D animation, the human is the one who draws much of the piece by hand, even if using automated inbetweening done by the computer.
Keep in mind that when a render starts, the program looks at everything in your scene, from nodes to models to textures to shadows. If your geometry is heavy and your 3d scene is slow to load and navigate through, chances are your rendering will suffer as well. So try to optimize your scene. I used to be a perfectionist with my 3d models and make them high detail everywhere.
The approach that will save you rendering time is to focus on what will be in the frame. People have gone as far as deleting parts of a model that do not face the camera for the particular file to be used in rendering for this reason. If you are working with subdivision surfaces you can lower the subdivision level.
Look through your scene and see if there are any models you worked on for a long time that you have added a large number of subdivision levels to. With polygons there are various methods depending on the software of bringing the number of polygons down as far as its still acceptable for viewing.
Also, plan ahead- when an object will be far from the camera or not in focus if you use a shallower depth of field, you can pay less attention to its detail, shadows, reflections, etc.
Subsurface scattering is great for making character skin look realistic. But it also adds a whole lot of time to render. See if you really need it, especially for long animations, and if you have to keep it on, leave it off until the final render.
You can use textures rather than polygons to make the scene lighter, especially if the model is not very close to the camera and does not need to be detailed.
Baking, depending on the software, can be done on textures, shadows, lighting, ambient occlusion, etc. Bake as much of these as you can prior to rendering to speed things up for an animation.
Also, find out if you can batch render your scene from the command line. You can do this in programs like Maya. That way your open 3d program will not be using much of your system resources while rendering (and trying to show you each new frame in a viewport). Instead only the rendering component will be open and active.
Raytracing can be turned off completely which would save you a large amount of rendering time. This all depends on your current project and whether you really need to use refractions, reflections, ambient occlusions and ray shadows. Think of how you can work around these.
I mentioned optimizing your raytracing. You want to look into options such as the number of max steps, which will decrease the number of bounces of a light ray. The number of bounces itself can be controlled. The more bounces the more realistic the scene but you can balance this between perfection and speed.
Shadows take time to render, especially ray traced ones. If you need them keep them off until the final render.
Games use a trick for real time rendering (not for prerecorded animation sequences that are done the slow way) which involves rasterizing where distance and orientation from each surface to a light is calculated, rather than bouncing actual light rays all over the scene, even where they cannot be seen by the viewer.
Turn off your ambient occlusion unless its absolutely necessary. Sure it makes things look more realistic but at what cost?
Get yourself some faster hardware pardner! In all seriousness, it might be time to upgrade your computer to something like 12 cores and 64gb of RAM.
Even with multi core processors, rendering times can be improved if you use many CPUs, so a render farm with hundreds of CPUs can be of benefit to you. With the advent of cloud computing, this distributed rendering has gotten even easier (and faster).
On the topic of cores, make sure your rendering software is using all of them. You would be surprised that many times for whatever reason it is not. Check your rendering software options for this.
Some 3D rendering tools support GPU rendering as opposed to CPU rendering. Check this with your software maker as GPU rendering can speed up your rendering times. You can also use multiple GPUs installed in your system.
Hard disk performance and connection is an issue as well. You do not want to be rendering to a USB 2.0 non powered low rpm portable drive.
If you have scene with dynamics/physics involved, you may want to bake the animation out to keyframes prior to rendering. Consult with your software manual.
Are you using motion blur in your animation? Depth of field for realism? Are they necessary for this particular scene?
Think about what renderer you really need for a particular scene. Do you need mental ray or will a regular renderer or maybe a toon renderer suffice? There are many built in renderers and plugins, depending on your 3D software package. New render plugins appear on the market all the time promising faster render speeds.
Below is a video on speeding up your 3d rendering using GPUs:
I hope that this article helped you understand why 3D rendering is such a time consuming process and the tips above gave you some ideas on how to shorten your rendering time. Thanks for reading.