In case you missed it
Previously, Gesy Bekeyei talked about OMAR Submarine production in Blender.
Hello! My name is Gesy Bekeyei and I currently reside in Saint Petersburg. I work as a senior 3D artist in Trace studio. My interests in 3D are mainly based around sci-fi hard-surface elements such as spacecraft, interiors, weapons, and mechanical elements.
How the Project Started
Asteroid Cutter project began with me being heavily inspired by realistic spacecraft and space in general. I looked at old and current Russian spacecraft and wondered what would happen if I integrated clearly functional industrial land-based machines into a spacecraft. A cool idea popped into my head: a rock cutter saw infused into a Russian spacecraft, which would be used to cut asteroids. This idea might sound wacky, as stated by my co-workers, but I wanted something that no one had ever seen before; something whimsical but functional-looking.
After gathering numerous spacecraft reference images, the first step was to design a shape that looked interesting, but realistic and which conformed to current conventional spacecraft design. I took inspiration from a Japanese underwater drone, the Toshiba ROV:
I extracted shapes and forms and integrated it into my spacecraft. The plan was to later cover this in closely fitting insulation material such as beta cloth and chromel-R fabrics. At first, the blockout was created, with all holes and future details cut into the asset. It’s important to get the final design of the base hull design before wrapping it in cloth.
In the above image, you can see the initial shape iteration. Future details are planned in advance using simple placeholders. In this iteration, my saw was too massive and not interesting enough, so I decided to delete it and start over. In these early stages, it's important to be flexible and not be afraid to make massive changes. To keep a sane mind, it’s important to break down parts of the asset into layers and to organize the scene. I used Blender 2.8’s new collection system to help me with this.
Asset Modeling in Blender
For this asset, I used Blender for modeling and a few add-ons to help with the concepting phase. This included Hard-ops and Box-cutter. For scene organization, I used a very powerful add-on called “GroupPro”. This add-on allowed me to create “Groups” in Blender and also to instance these groups around the scene without eating all my system RAM.
Since I have a full-time job, a significant other, a parrot and a dog, I didn’t have a lot of time on my hands to create “clean” meshes using sub-D, low poly, and fully UV and also texture them. I wanted to be able to create something that looked clean and highly detailed but using the small amount of time I had available each day. This led me to utilize a powerful method in Blender. The method simply goes like this: Model base mesh, add creases to all hard edges, subdivide to get a smooth mesh. This mesh, although smoothed using sub-D still has razor-sharp edges due to creases. This is where I use Blender’s bevel node to add a fake fillet into the edges.
Now one issue that occurs with this method is that small objects and large objects all share the same bevel width. This can make small objects look too soft while larger objects have too thin bevels.
To combat this, I came up with a simple shader that utilizes a gradient image and an extra UV channel to map objects to this gradient. I call the UV channel “Bevel” on all objects in the scene.
Below are the nodes I devised in order to control bevel node size using the gradient texture. This is then plugged into the Radius input of the Bevel node.
After arranging the “Bevel” UVs of the object onto the gradient, we end up with a more pleasing result.
This method saved me months of work. For example, my rocket engines are simply tubes and pipes stuck into each other. My bevel node setup creates a fillet between each intersection and gives it a realistic look. It would take ages to sub-D such an asset carefully and energy would be wasted, preventing me from completing the project. To create a detailed engine, I simply analyze reference, and extract some details and integrate them into my design. Most of them are just pipes crisscrossing into each other. On some days, I would be so tired that I would add a single pipe to the model, close Blender, and go to sleep. Over time, the single pipes evolved into a rocket engine.
This feature allows me to create my base shape in Blender, generate UVs to represent the clothing patterns, import the mesh into Marvelous Designer and maintain the 3D shape, along with generated cloth patterns from the imported UVs. Sometimes this feature doesn’t work perfectly, so it’s important to have straight, accurate UVs in order to get decent conversion.
After modeling your base proxy cloth mesh. Break it down into separate chunks. This reduces the total workload for Marvelous designer to simulate, and reduces errors from an overly complex mesh. Import it into MD.
This will use your UVs and generate a cloth mesh with custom UV patterns.
Now to simulate insulation, we need 2 layers of this pattern. The first layer will act as the metal hull, and the second layer will be sewn onto the “metal hull”. To do this, right-click the pattern and select “Layer Clone (Over)”. Then freeze the original pattern to prevent it from moving. For the cloth physical property, I like to use “Cotton Gabardine”. Increase the shrinkage weft and warp to add more material to the fabric. Press simulate and watch your cloth turn into spacecraft insulation.
Also, you can draw various cuts, seams, and details into your imported UV pattern to make it more complex.
This method can be used on anything from hulls to pipes. It was used throughout the fabric modeling process. After simulating all my fabric, I import them into ZBrush for corrections and decimation.
Actually I didn’t use much of Substance for this project. The only thing I used Substance for was micro-detail for the insulation. Most of my texturing is done using Cycles shaders and grunge maps.
Grunge textures are mixed and overlayed in the shaders in order to provide gloss variations.
The materials are relatively simple with nothing special or complex.
For decals such as text and logos, I utilize UV channels to map decals to a specific part of the model. I used this technique in my previous project “OMAR” submarine, as shown here:
For the lighting, I wanted to achieve a studio-like lighting effect; instead of harsh space lighting, I opted for softer lights using large area lights to achieve this. I used the classical 3 point lighting scheme with a key light, fill lights and rim light to make the model pop out from the background. I had around 11 different shots, each with its own lighting setup. It's important to move lights and rearrange them for each shot because one lighting setup might not work for the next shots
I use my keylight to emphasize the top of the model and to cast light in a natural way onto the asset. Additional fill lights are used to lighten up areas that are too dark.
After lighting is set up, I use Camera Manager add-on for Blender to help me manage my scene cameras. I then render the shots and composite them using Blender’s compositor. Blender’s compositor allowed me to apply the same treatment to all the shots in order to obtain a uniform result. Compositing included simple color correction and brightness/contrast enhancements, along with lens in(correction) such as distortion and chromatic aberration. The final shots were then denoised using Intel’s new Denoiser in Blender 2.81. This powerful node cleared up all my noise without affecting any details.
The greatest challenge behind this project was adding enough details to support and embellish an asset of this size, without adding too much noise and clutter, all in a reasonable amount of time. This challenge was made difficult by the limitations currently suffered by Blender 2.8 at the time of writing. The massive amount of details and polygons exposed the inefficient undo operations and poor subdivision optimization currently in Blender, and these issues increased the turnover of the project by multiple weeks. Multiple techniques were used to lessen these issues, such as skipping sub-D modeling, decimating cloth assets, using instanced collections to duplicate assets around without overloading the system, and modeling all assets and details in a separate Blender file. To build such a detailed craft, especially in Blender, I advise to practice good scene organization, and ways to minimize polygon count. As for the design aspect, I advise to base your designs on the real world and look at real reference images of spacecraft. This will allow you to build functional-looking objects that are recognizable and relatable to the viewer.
BONUS: Lighting Secrets
Some people have been asking how I made the lighting for my space scenes.
This kind of lighting effect is obtained simply using 2 lights. One light is a very powerful white directional light (at 18-25 intensity). Position the “sunlight” and rotate it until you like how the light falls on the model. Try to avoid having this light direction parallel to the camera line of sight as this results in flat and boring lighting.
The next step is to add simulated bounced lighting from a nearby heavenly body, such as a planet or an asteroid. This bounce lighting can be blue or any color depending on which object is bouncing it.
After I obtain the raw renders, I process the images and add elements to improve the look.
These elements include foreground and background elements, camera effects such as chromatic aberration, light leaks, bloom on areas exposed to sunlight, bokeh effects and a light haze. These effects help to blend the spacecraft into the space backplate and add a nice touch of realism.