Nexus VI

Nexus VI: how Blender was used to create jaw-dropping CGI for a Sci-Fi Youtube channel

This article is available in: French

3DVF: The end credits of the episode explain that some tools were developped for your work. Can you tell us more about them?

Romain Toumi: For such a big projet, the software must be tailored to your needs, which is why many animation studios used a version of Maya that they have tweaked, or with a lot of plugins. I used a custom build of Blender. Here is the current build, updated just after the end of Episode VII:

I had a lot of help from the BlenderLounge Discord [Editor’s note: a community of Blender users], including from Jonas Holzman: a young engineering student fluent in C, who taught me how to build my own custom version of Blender.

I also used Python, and I created my own addons during the production of Episode VII, with the help of Alexandre Labedade who has a good expertise in Python, we developped a few things including a tool that can create high-res asteroids while decimating everything that is outside the view frustum.

There is also another addon that allows me to add assets such as asteroids, spaceships or laser systems quite easily, an asset manager used for the city, a renderfarm tool right within Blender, developped in C and Python.

3DVF : Which render engine did you use, and why?

I used EEVEE du prepare my scenes, to create the basic lighting and for previs, so that the director can imagine the mood of some specific scenes.

Final render was done with Cycles, since Cycles X was not available when I was using Blender 2.8-2.9, and sometimes E-Cycles allowed me to get shorter render times.
Cycles was an obvious choice since it’s free and included in Blender. It’s perfect for this kind of project (except for the introduction scene where I really experienced the limitations of Cycles, in addition to the limitations of Blender). Besides, I’ve been using it Cycles ever since it came out back in 2011 alongside Blender 2.61.

I used E-Cycles when my render times became too long using Cycles. I would then switch to E-Cycles, tweak a few settings and try to cut my render times while getting a similar end result. Sometimes, this was really helpful!

Now that Blender 3.x is available E-Cycles is even more interesting. Maybe not any more when it comes to render times, but rather with features such as Light-Linking: you can setup your scene so that a specific light will only light specific objects. This way you don’t have to use several layers, like you would with Cycles.

3DVF: Did you manage to cut the introduction sequence in several parts, so that it would be easier to handle and render?

Yes, the sequence is actually made of four shots stitched together.

The first part begins in space, the second shot begins when the camera passes through the clouds. This second shot was the heaviest when it comes to .blend, assets… And issues.

The clouds themselves are actually stored in a separate blend file: I used Cycles, and this renderer is not as powerful as, for example, RenderMan. Moreover, my computer is not that powerful. Trying to render everything at once was out of the question.

The second part starts when a bridge can be seen across the frame (have you noticed there is also a Pizza Planet Truck from Pixar?), I stitched the two parts at the compositing stage. The third part had the longest render times, because I tried to achieve something similar to what Pixar did for Coco, on a lower scale: hundreds of real lights in the scene… This clearly was a bad idea, in the end I didn’t really do it (once again, there’s a gap between Cycles and RenderMan), but every mesh light really does light the scene. The volumetric effects were rendered separately, it took a long time since the number of lights is very high.

Raw rendered image (Beauty/combined)
Volumetric pass added, first compositing tests
The end result

3DVF: To create this volumetric effect, did you consider doing it at the compositing stage?

Actually, I did use some compositing for the part of the city that is above ground: I added some mist. You can see that I used this trick, it’s not as realistic as it could be, but I didn’t have the choice: Blender would not render it, I pushed it to the limits, it was crashing pretty much all the time.

I asked Alexandre Labedade to make me a Python script that would address this kind of rendering issue: if a frame is rendered in just a few seconds, or at the opposite end of the spectrum if nothing has been rendered after an hour, we can assume something went wrong. This script will therefore restart Blender and re-render the frame. Thanks to this script, but also by rendering everything using command lines and with an optimized Windows OS, I managed to render everything!

Going back to the third part of this sequence… There is something that you don’t really notice when watching the episode: when the camera turns right to avoid the DeLorean, the whole part of the city on the right grows bigger. This change of scale was used to avoid a few issues with the camera and the whole sequence feels more fluid. There is also a building that comes out of nowhere, but there is so much stuff happening that you don’t notice it.

Moreover, when the camera goes through the car, everything that’s behind it disappears. This is done with a fading effect so that you won’t feel it when watching the episode (if you just delete everything suddenly in one frame, some shadows and reflections will disappear). This allowed me to achieve lower render times.

Lastly, the transition with the last part of this sequence takes place when we enter the sewers, the holes of the manhole cover were rendered using alpha transparency.

This fourth shot lasts until the end of the sequence. The creature that can be seen in the sewers was added at the end of the production. I used this lezard to put some life in what would otherwise have been quite empty, and this lizard will also come back in upcoming episodes!

At the end of the sequence, there is a transition between CGI and live-action: the rocks in the foreground are CG, so are some rocks on the right. The hand and the pin are of course real. I used the rocks to hide the transition between CGI and live-action.

And this is where this introduction sequence ends, after 2 minutes 12 seconds!

3DVF: This is quite an impressive amount of work!
In the following scenes of the episode, there are many shots with spaceships, asteroids, dogfights, lasers… These were not easy to create, especially since many shots are a mix of live action and CGI. For example, a real pilot and cockpit, surrounded by CG asteroids. How did you handle these elements, and can you tell us about the shooting?

While we were shooting the alien in his cockpit and the huntress with her helmet against green screen, I had no idea what the end result would look like! We had not yet decided to add the broken planet which allowed me to get a red lighting, the star which introduces some white light. Otherwise, of course, I would have told the DOP to match this lighting.

The shooting actually took place quite early, for economic reasons: a studio with a green screen was available for a limited time, so we decided to shoot as soon as possible.

Of course, since some details had not been prepared as much as we would have wanted to, and since we didn’t really have a clear idea of what we were aiming for anyway, the plates were far from perfect. A lot of compositing and cheating were requided to finally get a lighting that feels right.

Basically, only the actors and the dashboard were filmed against green screen. The dashboard, by the way, is quite simple and made out of wood. We also used a few light sources to create stroboscopic effects and flashes, in order to get a sense of speed, with objets passing by the pilots.

Later on, the full cockpits were added with glass panels. Unlike the pilots themselves, the CG cockpits match the lights from the CG scene.

On wider shots, I used digi doubles. They were animated using some noise for the head bone.

The end result is really nice, I’m quite happy with it!

3DVF: The huntress wore a real helmet: did you consider shooting without the visor? This way you could have added it back in post, alongside realistic reflections.

I did consider it. This would also have been useful when she is viewed from the side, since a transparent visor shot against a green screen can create various issues.

Fortunately, I got some help: Emmanuel Dirian, who studied in the East of France before moving to Canada for work. As a rotoscope & compositing artist, he had the opportunity to work on movies such as Star Wars: Episode VII, Valerian and the City of a Thousand Planets, Fast & Furious 8, the sci-fi series The Expanse

He is very skilled when it comes to keying, and his help was invaluable. He worked on all the shots and thanks to him we were able to keep the real visor during the shoot. This allowed me to add CG elements behind the visors, while at the same time being able to shoot real reflections during the shoot.

Which is why, thanks to him, this part of the process was actually quite easy to handle.

3DVF: Overall, on these shots set in space, is there a specific issue that required lots of retakes?

Yes, the looping sequence [15’46” in the episode] required several retakes because it’s quite difficult, in space and without any skyline as a point of reference, to create a choreography that will be understood by the viewers.

This is also an artistic choice. Alex, the director, did not want the sequence to be too demonstrative, he did not want to hold the viewer’s hand. And since this is an action sequence (moreover, an action sequence that was created for Youtube), it had to remain a dynamic sequence.

In other words, the sequence had to make sense to the viewer, the direction had to make sense too, we also had to avoid using too many cuts… Which is why there was a long thinking process, lots of trials and errors. We disagreed about the best way to approach this sequence.

In the end, we agreed on something that worked. In addition to that, we switched some shots while we were editing the sequence.

We are quite satisfied with the end result. But this was a long and complicated process!

3DVF: How did you create the asteroids?

That’s quite simple! Everything is procedural and was created using Blender modifiers. I should highlight that at that time, geometry nodes were not available yet, so that Blender users don’t scratch their heads wondering why I didn’t use this approach.

Geometry nodes were actually introduced during the production, but I have been using Blender 2.83 LTS until the end of the production, in june 2021. It’s always risky to upgrade while working on a big project, especially if you are using a custom build.

Coming back to the asteroids, I used several modifiers, subdivisions, displace to create some relief, a little bit of Voronoi, the Musgrave Texture node which is useful to creat some veins with holes… And the triangulate node so that the shader would react properly: Blender’s Pointiness, that I use in my shaders, doesn’t work well with quads.

With these tools, I was able to create asteroids in all shapes and sizes. I then baked everything, in order to get 3D models with 4K and 3K textures only (and a few with 8K textures, should I need it later on). I then decimated the meshes, created LODs by hand with a low-res version, a mid-res version and a high-res version that would work even if the asteroid was quite close to the camera. When an asteroid was really close to the camera, I didn’t bake anything, I used the original procedural asteroid.

Last, but not least, I created collections using theses asteroids. I then used particles and a in-house addon to scatter them in the void of space, while still being able to adjust the result using a set of parameters. There were two groups of asteroids, one for the big asteroids, another for the smaller ones. I would then adjust the scale, speed, duplicate a few asteroids here and there… And voila, a beautiful field of asteroids created in just a few seconds!

Of course, some asteroids were also placed by hand, which allowed me to add an easter egg: an Suzanne-shaped asteroid, Suzanne being the famous Blender monkey head. You’ll have to watch the episode to spot it! Here’s a hint: this asteroid can be seen near the end of the episode. There is also another one during the end credits, next to my name.

Bottom left hand corner: Suzanne, partly obscured by shadows. Suzanne can also be spotted elsewhere in the episode.

3DVF: Going back to the gunfight themselves, you used a lot of FX: lasers, streaks, and some effects close to the reactors… How did you create these FX?

I used a mix of stock-shot elements and particles.

Basically, I managed to put in place a system that would allow me to easily add lasers. This system shoots particles and there are sights I can move wherever I want. I can also use a curve to control the sights. Usually, I would control the sights using the curve already created to control the motion of a spaceship, with the lasers shooting a few meters in front of it, as if the pilot trying to shoot the spaceship was trying to anticipate the moves of the enemy, without being able to score a hit.

A little bit of randomness was added so that the spaceships don’t shoot too straight, which means I also have to check that the targeted ship was not hit (it actually does happen in one shot, but since the camera is very far away you can’t tell).

The only thing my shooting system can’t do is to pause/resume shooting when I want. Why ? Well, because Blender allows you to set how many particles you want to shoot, to set when the shooting should start/end, but you can’t add a pause.

I did manage to find a solution: an invisible cube, “the particle killer”, was added. Any particle touching this cube is destroyed. When I want a ship to stop shooting for a while I can teleport the emitter inside the cube, and when I want the ship to resume shooting I teleport the emitter back where it was.

I actually added several cubes, because sometimes the particle manages to escape if I ony use a single cube… Using physics to circumvent an issue is less practical and reliable than a checkbox, it’s quite dirty, but in this case it works like a charm!

Up next: lasers, explosions, the end sequence, the escape pods…

Laissez un commentaire

A Lire également