pbr


CGI Coffee

Unity and Unreal Engine: Real-Time Rendering VS Traditional 3DCG Rendering Approach

(Revised and updated as of June 2020)

Preamble

Before reading any further, please find the time to watch these. I promise, you won't regret it:

Now let's analyze what we just saw and make some important decisions. Let's begin with how all of this could be achieved with a "traditional" 3D CG approach and why it might not be the best path to follow in the year 2020 and up.

The Linear Pipeline and The One Man Crew Problem

I touched upon this topic in one of my previous posts.

The "traditional" 3D CG-animated movie production pipeline is quite complicated. Setting aside pre-production and animation/modeling/shading stages, an A-grade animated film treats every camera angle as a "shot" and these shots differ a lot in requirements. Most of the time, character and environment maps and even rigs must be tailored specifically for each shot.

tintin-shot-to-shot-differencesShot-to-shot character shading differences in the same scene in The Adventures of Tintin (2011)

For example, if a shot features a close-up of a character's face, there is no need to subdivide the character's body each frame or feed it to the renderer. However, this does mean the facial rig requires more controls, and the face probably needs one or two additional triangles plus a few extra animation controls/blendshapes, along with displacement/normal maps for wrinkles and other details.

The fundamental issue is that the traditional pipeline is inherently linear.

Digital Production Pipeline

As a result, you will only see true production-quality images very late in the production process. This is especially true if you rely on path-tracing render engines and lack the compute power to render hundreds of frames at scale. After all, this is an animated feature running at 24 frames per second. For a short 8-plus-minute film, that translates to more than 12,000 still frames. And they aren't straight-out-of-the-renderer beauty shots. Each final frame is a composite of several separate render passes, plus special effects and other elements layered on top.

Now imagine that at a later stage of the production you or the director decides to make adjustments. Well, shit. All of those comps you rendered out and polished in AE or Nuke? Worthless. Update your scenes, re-bake your simulations and render, render, render those passes all over again. Then comp. Then post.

Sounds fun, no?

You can imagine how much time it would take one illiterate amateur to plan and carry out all of the shots in such a manner. It would be just silly to attempt such a feat.

Therefore, the bar of what I consider acceptable given the resources available at my disposal keeps getting...

Lower.

There! I finally said it! It's called reality check, okay? It's a good thing. Admitting you have a problem is the first step towards a solution, right?

Right!?..

welcome-to-aa Oups, wrong picture

All is not lost and it's certainly not the time to give up.

Am I still going to make use of Blend Shapes to improve facial animation? Absolutely, since animation is the most important aspect of any animated film.

But am I going to do realistic fluid simulation for large bodies of water (ocean and ocean shore in my case)? No. Not any more. I'll settle for procedural Tessendorf Waves. Like in this RND I did some time ago:

Will I go over-the-top with cloth simulation for characters in all scenes? Nope. It's surprising how often you can get away with skinned or bone-rigged clothes instead of actually simulating those or even make use of real-time solvers on mid-poly meshes without even caching the results... But now I'm getting a bit ahead of myself...

Luckily, there is a way to introduce the "fun" factor back into the process!

And the contemporary off-the-shelf game engines may provide a solution.

game-engines