Creating the Environment in Videos – Part II
Playsense Agency CG Team Take – Part II: The production pipeline
In Part I of this article, Alexey Kozyrev, CG Video Supervisor at Playsense agency, outlined the key problems CG developers encounter while creating environment for videos, and defined the main stages of the process. Now we’ll take a look at Playsense environment production pipeline, using a real case of a small scene.
Software we use to create environment
Our key instrument is Houdini. We use it to assemble the scene, to render it, to generate landscapes, to scatter objects, to add the effects, etc. The Houdini suite has a high “entry barrier” but if you invest you time into learning it, it will pay off. Mastery of Houdini will be useful in every CG branch both in movie production (where it’s an industry standard) and in game development. Houdini is highly compatible with Unreal Engine and can be used to create cool procedural assets. A Houdini Technical Artist is a profession into itself.
Everything you see in the scene shown above (save for the trees) was created with Houdini (also using a number of megascans).
At Playsense, we employ a range of landscape generators, including World Creator and GAEA (more on these in ”Creating a Large-Scale 3D Environment: Expand Your Toolset” article by our agency’s Art Supervisor Andrey Petrukovich).
Yet to create this scene, we went with the Houdini workflow and used HeightField. This suite has a great amount of settings, allowing you to generate terrain of any complexity. Its main advantage is non-destructive editing: you can go back (up to the very beginning if you wish) and introduce changes. For example, the blocking-stage prototype made with cylinders and cones can be moved into the workflow straight away. You can add several versions of erosion of varying complexity to it, and generate masks. You can go back at any time and move any object; the program will generate everything anew and reconfigure all the scatters (which is very convenient).
So what was done here? A few layers of erosion with different power were created. Another advantage of Houdini is that it lets you use custom masks along with standard ones, and here, a few of the former were made: the ones for grass, dirt, wet dirt, and the snow cap. The setup is very flexible, and you can apply noises using maths.
Then it all is used in the shader. All the attributes are given as masks to mix up the textures. And once again, if you go back to the blocking stage to (say) move some mountains, everything will be generated anew, the masks will be adapted, and the shader will adapt to the changes, too.
Later, the basic lighting is set, the shader is applied, and the masks are mixed. Now steep surfaces, wet dirt and flowing streams are emphasized, and the grass is mixed into patches. After applying the basic lighting, megascans (a staple nowadays) were added to increase the level of detalization. Houdini is on very friendly terms with megascans.
Here's the picture without the megascans.
And here’s the version with the megascans.
The tree assets were made with the SpeedTree. It’s a powerful suite made exactly for this purpose. It’s easy to master and can create vast amounts of assorted greenery of any complexity. SpeedTree is node-based, and the editing is non-destructive. You can introduce changes and adjustments at any stage, and add detail.
A very powerful feature of this suite is the randomizer. You can make a single fir-tree, and then generate several types of assets with a couple of clicks.
After creating the tree assets, we scattered them on the terrain according to our masks.
Another powerful feature (that of Houdini) is that it lets you color your assets procedurally at the rendering stage. You can add several noises and make the foliage color more varied, making the scene more atmospheric. Then you can add cloud shadows or use some shadow generator to darken some non-essential elements.
Time to introduce the hero. In this case, it was a hero object: ruins of a small castle, quickly and procedurally assembled in Houdini out of primitives.
We scattered cylinders and cones onto primitives, subtracting embrasures and torn-out fragments. Then we scattered the geometry as the brick shape onto everything. We applied the VDB (transferring the geometry into Houdini with low resolution) and received a mass that (from afar) resembled the ruins of a structure made out of bricks. Later we added some details. Geometry-wise, all polygons were facing up. We put leaves on each of them, to imitate moss. You can’t make it out from distance, but we gain in detalization this way. And here’s what came out of the castle and the scene.
A few words about composing. It’s used to bring the contrast and sharpness levels up, express the needed color spaces, vignettes, chromatic aberrations, etc. In this case, composing wasn’t employed but generally it’s part of the Playsense pipeline. Everything is rendered in layers so that it could be edited and processed later.
Above you can see the final landscape, and we’ve just briefly touched upon the main stages of its creation.
Optimization is a crucial thing as rendering is a critical parameter, taking time for each frame. Therefore even after everything’s ready, you need to optimize the scene.
The rules are relatively simple. The frame can be divided into three sectors.
There’s a camera with a field of view. Everything in Sector I should have maximum detail, preferably achieved with geometry or with HD displacement. If the camera is at ground level, the details should be especially numerous. Starting with Sector II, you should start to economize: everything employing displacement should be substituted with normal or low-poly/mid-poly geometry. In Sector III, you should use flat cards and photos everywhere you can. Don’t forget about the camera: delete everything that is not in its field of view. If something out of camera FOV is casting a shadow, substitute it with a plane. It’s especially important for GPU-intensive renders.
Lighting is a very important element of CG environments. They say bad lighting can kill a good scene and a mediocre scene can get more attractive with good lighting. Here’s an example, a city environment concept made at PlaySense. When lighting is simple and direct, it looks flat and isn’t very appealing.
But if we take the same scene and tinker with the lighting a bit, it will look drastically different.
So it’s totally worth your time to fine-tune the sun, HDR, and add some shadow casters: any scene will shine and look an order of magnitude better.
To sum it all up, working on environment for CG videos has its own rules you need to stick to—so that the viewer is impressed by the resulting picture: believable and creating the atmosphere required by the video’s plot and story. To achieve this effect, there’s a multitude of instruments and techniques, and here we’ve only reviewed those actively employed at Playsense agency.