My journey learning 3D: Materials and Textures
A long way ahead
When I finished part one of creating Ron Cobb's bulkhead door from Alien, I thought a second part would be all that was left to finish the project. My assumption was that textures, animation, and sound would be as much work as creating the initial mesh, from high to low-poly, including UV unwrapping and baking — I could not have 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 get 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 was 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, I had to go in and adjust parts of both meshes afterward regardless.
What really took my fear of working destructively on the mesh away were add-ons like MESHmachine and MACHIN3tools, which provided 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, which gives me quick results, I omitted being more cautious with my mesh topology, combined with being inexperienced in 3D modeling. 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 (but not optimal) mesh topology with clean shading.
This now gave me the option to bevel my hard edges, creating a mesh I was much happier with.
Reworking the topology and adding beveled edges meant I had to go through all the previous steps again — starting with creating a low-poly version of my mesh.
After 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.
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.
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.
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.
To fix this, I had to paint the offset, extending the cage, to capture all the detail of the mesh.
After having this done and re-baking the mesh, I got rid of the black spots on my mesh.
It still took me a while to fix 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 lifesaver for me, densely packed with information — I'm still learning from it on every new bake.
At this point, having learned so much more in the process, it is finally time to create the 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 and 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 aluminum alloy, painted white, with partial signs of use on the edges.
Cargo ships use a lot of steel and aluminum alloys; steel being heavy makes the aluminum alloy a better candidate; it is also used in space travel as of today. The white paint would serve as a protective coating that wears off 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 in the usual high-tech genre.
That's what I wanted to recreate then — an aluminum alloy, painted white and visibly worn. To do this, I wanted to try a few different tools: Quixel Mixer, a free tool by Epic; Marmoset Toolbag 4, which I already use for baking and has texturing support as well; and Fluent: Materializer, a Blender add-on with a node-based procedural texturing workflow.
Epic's Quixel Mixer is a free tool to create textures. I've read about it being easy to use while getting amazing results. And I'd say, at first glance, 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.
After 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 good 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 the 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, and 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 should try using it again on a Windows machine or give it some time to iron out those problems. It's definitely not the last time I try Epic's tool.
Marmoset Toolbag 4
Next up, I wanted to dive into the texturing tools of Marmoset Toolbag 4. I already knew some parts of the UI of Marmoset as I use it for baking, and I also knew that the program is absolutely fast and snappy. So far, I have not had 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, and even shaders. Going through some of those tutorials, I started working on creating textures for the bulkhead door.
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 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 Blender's shading nodes, it serves as a way to streamline the creation of procedural materials.
This way of creating my own materials with a node-based workflow really stuck with me. I felt comfortable right away — creating materials based on my gathered references without too many issues.
Not only that, I was able to create something I was finally happy with. From the base material of the door, the white painted aluminum alloy with worn edges, to the warning lights with a reflector pattern around the frame, things started to look as I wanted them to.
I did stick to it for this project, creating all the 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 better documentation, going in-depth about all its features.
Overall, I'm still very happy with the add-on, which enables 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, including 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 absolutely 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 is from a loaded font, using a similar one to the one Ron Cobb used in his drawing; the warning label is from geometry and text I quickly threw together in Blender.
As a result of decal creation being that effortless, I will definitely build up my decal library over time. It was a very fun process that immediately triggered new ideas in my mind for more details I wanted to create.
Having a set of decals created, I added them to my 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.
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
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 differently if I did 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's a look at how my mesh stacks up to it.
I will do it and say it (or rather write it) — I for myself, consider this an absolute success.
Having reached my goal, 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.
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.
What a ride, that is not even done yet. Even though this took me way longer and was way harder than I thought, I learned a tremendous amount of things and had so much fun and joy while doing it. I'm for sure not happy with everything and would do a lot differently 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 about what comes next.
What comes next?
So far, I "only" rendered pretty pictures of the door. Next up, I want to have some animation; for this, I will learn to rig and then animate 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 👋🏻.