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 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.
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 previous steps again — starting with creating a low-poly version of my mesh.
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.
Having this done, and re-baked the mesh, I got rid of the black spots on my mesh.
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.
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.
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.
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.
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
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.
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 Blenders 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 to me. I felt comfortable right away — creating materials based on my gathered reference without too many issues.
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.
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.
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 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.
I will do it and say it (or rather write it) — I for myself, consider this an absolute success.
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.
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 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 👋🏻.