Martin Helmut Fieber

Part 2 of 6 → show all

My journey learning 3D: Materials and Textures

Posted on — Updated

Image shows a close up of my final render of the bulkhead door, looking at a part of the inner barrier door with warning label.
A detail shot of what I will create.

A long way ahead

When I finished part one of creating Ron Cobb's bulkhead door from Alien, I thought a second part will be all that is left to finish the project. My assumption was, textures, animation, and sound will be as much work as creating the initial mesh, from high to low-poly, including UV unwrapping and baking — I could have not been more wrong.

What was intended to be a two part series is becoming five parts, with this being part two, focusing on texturing and details, and the things I had to do again to come to this point.

For once, I had to rework parts of my mesh as my topology was horrible. I also started applying booleans earlier and be less scared of using a destructive workflow. The initial idea was to have a simple way of going from a high to a low-poly mesh, by deactivating booleans. Though, this did not turn out to be a time saver, as I had to go in and adjust parts of both meshes afterwards regardless.

What really took my fear of working destructively on the mesh were add-ons like MESHmachine and MACHIN3tools, providing a multitude of helpful tools and shortcuts. On top of that I got more experience in Blender over time, as I was working on other models as well, learning much more on many topics. An amazingly large field with engaging challenges to overcome.

New Topo*, new me

With great topology comes great possibilities, and I had none. Due to mainly using a boolean workflow, giving me quick results, I omitted being more cautious with my mesh topology, combined with being inexperienced in 3D modelling. My shading sure looked okay for what I was able to judge, but I was not able to add bevels to the model and my UVs were suboptimal at best.

Using a boolean heavy workflow is not the issue here, it is how I worked with it. In the end I sat down and reworked many parts of my mesh, resulting in a better (not saying optimal) mesh topology with clean shading.

Image showing the topology of the bulkhead door mesh.
New and improved topology of the mesh. Getting better, step-by-step.

This now gave me the option to bevel my hard edges, creating a mesh I was much happier with.

Two images, on the left showing the mesh with beveled edges. On the right, a closeup of the mesh with a metallic shading.
Now the mesh has beveled edges (left), with much better shading (right).

Reworking the topology and adding beveled edges meant I had to go through all previous steps again — starting with creating a low-poly version of my mesh.

Image showing the high-poly version of the mesh. Image showing the low-poly version of the mesh.
New low-poly version of the mesh with less detail and fewer bevel segments.

Redoing the UV creation and unwrapping, I also started using UVPackmaster 3 for automated UV packing, trying to get the best resolution for my textures.

Image showing the UV unwrapped mesh with a checkerboard texture.
The UV unwrapped mesh with an example checkerboard texture.

At last, adding a triangulation modifier to all parts, not applied in case I need to rework parts of the mesh later, but handy when I export the mesh as FBX for game engines.

Image of the mesh in wireframe mode, showing the result of the triangulation.
This is how the mesh looks like with the triangulation modifier.

Of to baking …

Material preparation and bake

This time, I wanted to get better bake results and make applying textures later easier for myself. What I missed the last time was a material ID map, a mistake I wanted to resolve now. For this I did add colored materials to the high-poly mesh in Blender to "bake down" onto the low-poly mesh in Marmoset Toolbag 4.

The mesh with colored materials for the material ID map, showing the inner and outer part.
Materials ready to create a material ID map.

Baking in Marmoset, this time giving myself more time to make it proper. Specifically, in part one I had some "black fragments" on my mesh. I found out this is an issue with inset parts and the automatic offset cage applied by Marmoset. The offset cage should extend far enough to cover the highest points of the high-poly mesh, and it did not wherever I had those fragments.

Closeup of the mesh showing a black part in Marmoset.
Some parts of my mesh had those strange black parts.

To fix this I had to paint the offset, extending the cage, to capture all the detail of the mesh.

Closeup of the mesh with a part selected, showing the offset cage around the element.
Changing the offset cage to capture all the detail.

Having this done, and re-baked the mesh, I got rid of the black spots on my mesh.

Image on the left showing the mesh without black spots, on the right a closeup of the part I had to manually edit the offset cage.
After adjusting the offset cage the black fragments were gone.

It still took me a while, fixing more offset and skew issues as seen in the images above. The people behind Marmoset created an amazing tutorial for baking in Marmoset, covering everything needed, and more, to get the best bake, including common issues and what all exported maps actually do. This was a real life-saver for me, densely packed with information — I'm still learning from it on every new bake.

Being at this point, again, having learned so much more in the process, it is finally time to create the textures.

Hurrah, textures!

The time has come to give proper material to the bulkhead door; but how, and what? First things first, I tried to find out what material the door could use. Searching the internet, looking at Ron Cobb's drawings, movie references from Alien, and pictures from cargo ship interiors, I came to the conclusion it could be an aluminium alloy, painted white, with partial signs of use on the edges.

From left to right: Ron Cobb's sketch of the door, image of the interior of a cargo ship, bulkhead door from the movie Alien.
From left to right: Ron Cobb's sketch of the door, image of the interior of a cargo ship, bulkhead door from the movie Alien.

Cargo ships use a lot of steel and aluminium alloys, steel being heavy makes the aluminium alloy a better candidate, also used in space travel as of today. The white paint would serve as a protective coating that wears-of over time, but can easily be replaced.

Having everything easily repairable even with limited tools — less moving parts, fewer electronics, higher chance to run cheaper, longer, on fewer people. Just paint the walls and hull white again, and you're good to go. Throw some duct tape on it and the rattle stops. That kind of mentality, but on a usual high-tech genre.

That's what I wanted to recreate then, an aluminium alloy, painted white, visibly worn. To do this I wanted to try a few different tools: Quixel Mixer, a free tool by Epic, Marmoset Toolbag 4 I already use for baking has texturing support as well, and Fluent: Materializer, a Blender add-on with a node-based procedural texturing workflow.

Quixel Mixer

Banner showing the logo of Quixel Mixer.

Epics Quixel Mixer is a free tool to create textures I've read about being easy to use while getting amazing results. And I'd say, on a first look, it can absolutely deliver. The interface is very clean and sorted, most of the functions self-explanatory, and for someone knowing typical graphics programs like Affinity Designer quick to understand, at least that is how I felt.

Image showing the bulkhead door open in Quixel Mixer.
Quixel Mixer has a really nice interface.

Getting my mesh and baked maps into the tool, I was ready to start applying predefined materials to it based on my material ID map. The layer based approach felt intuitive and I got some pretty results in a short amount of time. Those results did not match what I set out to recreate yet, but putting more work in there I can surely get there.

Though, this is where the problems started, at least on my MacBook Air with M1 chip I mainly work on. The program became more and more unresponsive with every added layer, making small changes froze the tool, resulting in waiting times between every edit I made. In two cases Quixel Mixer even crashed, or I had to force quit the program.

Due to those problems I did not continue using Quixel Mixer; sadly as I really liked the intuitive controls. Maybe I try using it again on a Windows machine, or give it some time to iron out those problems. Definitely not the last time I try Epics tool.

Marmoset Toolbag 4

Banner showing the logo of Marmoset Toolbag 4.

Next up, I wanted to dive into the texturing tools of Marmoset Toolbag 4. I knew already some parts of the UI of Marmoset as I use it for baking, I also knew that the program is absolutely fast and snappy. So far, I had not one issue or slowdown, not a single crash.

On top of that there are amazing tutorials, covering everything needed from baking to texturing, UI, rendering, even shaders. Going through some of those tutorials I started working on creating textures for the bulkhead door.

Image showing the Marmoset Toolbag program with the bulkhead door in the main viewport.
Texturing tools of Marmoset Toolbag 4.

As I had a project already set up from the baking, I could switch to the "Texture" tab and keep going. Figuring out what is necessary to create the textures I wanted, using a layer based approach, with a huge set of predefined materials. Though, I could not create something that made me happy. One hurdle for me, the interface, more or less the opposite to Quixel Mixer, is very detailed and functional, almost overwhelming me with options.

I think to really leverage the power of Marmoset I need much more time with it, going through more tutorials, and trying to recreate other textures. This is what I will do, continuously, to deep-dive into it. For now, I closed the program, as I wanted to try another way of creating my textures for the door.

Fluent: Materializer

Banner showing the logo of Fluent: Materializer.

Fluent: Materializer calls itself a material tool suite; a Blender add-on that, instead of using predefined materials to create textures, is about creating materials itself. Building on top of Blenders shading nodes, it serves as a way to streamline the creation of procedural materials.

Image showing a set of nodes from the Fluent: Materializer add-on.
Some example nodes from the add-on.

This way of creating my own materials, with a node based workflow, really stuck to me. I felt comfortable right away — creating materials based on my gathered reference without too many issues.

Image showing a test render of the door on the left, and the used nodes on the right.
A first test render of the door.

Not only that, I was able to create something I finally was happy with. From the base material of the door, the white painted aluminium alloy with worn edges, to the warn-lights with reflector pattern around the frame; things started to look as I wanted them to be.

I did stick to it for this project, creating all materials I wanted and even some variants later on. Nevertheless, one issue I have is the documentation; other tools set a good standard that Fluent: Materializer just cannot reach, with missing information about many of its features. I would really wish for the add-on to get a better documentation, going in-depth of all it's features.

Overall I'm still very happy with the add-on, enabling me to iterate quickly on my materials. All I needed next was some more detail.

Details, decals, and determination

Now that my materials sparked joy, I wanted to add more detail to my mesh; the numbering above the bulkhead door, as well as some screws on the door. To do this I already knew I wanted to use DECALmachine — an absolute amazing Blender add-on I do not want to miss anymore.

With it I was able to quickly add mesh decals, in a fast and intuitive way. For the screws on the main door I used some of the decals that came with the add-on. For info decals, like the numbering on the frame or the warning text on the barrier doors, I created my own.

Without leaving Blender, I was able to quickly set up my decals. The number from a loaded font, using a similar one to the one Ron Cobb used in his drawing, the warning label from geometry and text I quickly threw together in Blender.

Image showing the creation of an info decal inside Blender.
Creating decals right inside Blender.

As a result of decal creation being that effortless, I will definitely build up my decal library over time. A very fun process that immediately triggered new ideas in my mind for more details I want to create.

Having a set of decals created, I added them to my mesh.

Image showing a big number two, a decal added to the mesh.
Adding a decal to the mesh.

To remove the clean look, I added a grunge map from Fluent: Materializer to the alpha input of the info decal group node, adding some wear and tear.

Image showing a large number two, the decal added to the door, with a node group to add grunge.
I'm trying to make that decal more realistic …

One thing that really stands out to me, with all MACHIN3 tools, is the documentation. Every single tool has a documentation website, FAQ, changelog, and even videos, showing existing and new features alike. Effectively the reason that tools like DECALmachine and MESHmachine became essential for me in no time.

Now, without further ado, the textured bulkhead door.

Final design, Nostromo Bulkhead Door

Image of the white closed bulkhead door.
Ron Cobb's bulkhead door closed.
Image of the open bulkhead door, showing the inner barrier doors.
Ron Cobb's bulkhead door open, showing the inner barrier doors.

This is it, my first model I created and textured myself, not following a tutorial, applying what I learned, and learning a hundred more things while doing it. I'm indeed very happy with the result, even though I see many little things I would want to change or do different, if I would do it again. Nevertheless, I already invested a lot of time into this, and I need to continue, so I can someday actually finish everything I set out to do.

I wanted to recreate not the bulkhead door from Alien (1979), but the door from the drawing of Ron Cobb he did for the movie. Here a look how my mesh stacks up to it.

Image showing Ron Cobb's drawing of the bulkhead door. The final render of my white bulkhead door.
A result I'm super happy with.

I will do it and say it (or rather write it) — I for myself, consider this an absolute success.

Experiments

Having my goal reached, I wanted to try my own take on the door textures going forward. Even though I like the white style, I thought a darker tone for the frame would add a nice contrast to it all.

Image of the closed bulkhead door in a dark color.
My variation of the door, closed.
Image of the open bulkhead door in a dark color, showing the inner barrier doors.
My variation of the door, open with barrier doors visible.
My variant of the bulkhead door in dark, showing the closed and open version simultaneously.
Front view of my variant, split to show both states of the door.

I also wanted to add some more writing to the door as I thought this would help make it feel more real. So I quickly created some more warning decals with DECALmachine; this really took me just a couple of minutes.

Image showing details of my version of the door, a closeup of the barrier door warning label and the closed door.
On the left: a close up of the barrier warning. On the right: another angle of the closed door.

Conclusion

What a ride, that is not even at the end, yet. Even though this took me way longer and was way harder then I thought, I learned a tremendous amount of things, having so much fun and joy while doing it. I'm for sure not happy with everything, and would do a lot different now, but I take it as how far I've come and learned on my 3D journey until now.

On future hard-surface projects I would like to explore a mid-poly workflow, skipping the high to low-poly conversion, using weighted normals. I also need to get better with my UVs. But that is for sure something for future me. For now, I cannot wait to continue learning more in what comes next.

What comes next?

So far I "only" rendered pretty pictured of the door. Next up I want to have some animation, for this I will learn rigging and then animating the door in Blender. But, I will also explore how to export this to game engines to get a complete workflow going.

That will continue in part 3 of this "little" project 👋🏻.

← Show all blog posts