Michał Kalisz shared a lot of helpful insights into hard-surface modeling in Blender, including various addons and rendering tips in Eevee and Cycles.
In case you missed it
Study more hard-surface projects made in Blender
Introduction
Hi, I’m Michał Kalisz, born and raised in Poland. For a couple of years, I worked on several titles such as the Dying Light series and PUBG. Currently, I’m working on Cyberpunk 2077 in CD Projekt Red as Environment Artist/Prop Artist in Warsaw, Poland.
In this article, I want to explain my process of working on personal hard-surface projects as well as my way of thinking based on my latest project, Aircraft Engine, and talk about any related matters.
Learning 3D
Since I remember, I have always been fascinated by everything related to creative work and solving issues. When I was 8 years old and wanted to tell an abstract story that formed in my mind, I used to sketch a lot of story-driven “comics” starring simple stick figures, drawn in a typical childish way. Besides that, I had a huge tendency to learn realistic drawing and would do a lot of physical models using cardboard paper, glue, and fire matches. Sadly, I haven’t kept anything from those times. At some point, I decided to switch to the computer environment where I found my real passion - 3D Art.
I started my journey with 3D very early thanks to my brother, who, back in the day, used Cinema 4D for his study projects. Video games were also a huge factor and I’m quite sure that especially Half-Life 2 is one of the games that pushed me forward to become who I am right now. It was a huge inspiration for me.
At some point, I started delving into game production, mostly related to 3D prop or environment art, inspecting every corner of a game and asking myself every time I played: How is this really made? How was this object created? How was this room assembled? That’s where my fascination grew. I started reading articles that I found on websites or game-related newspapers. I started watching videos, tutorials, trying to do things by myself - naturally, mostly failing at the beginning, but I was very motivated to continue anyway and move forward. It’s safe to say that I’m clearly a self-taught 3D Artist. I was about 14-15 when I realized that this is something that I really want to do in the future. When I was in high school, I started building my portfolio with 3D artworks, which helped me get my first job as a 3D Artist when I was 19 years old. A year later, I was able to get into the game industry. That’s how it all really started. Luck was surely a factor, but I made it because I worked very hard on that.
Hard-Surface Modeling - Things That Are Important for Me
Hard-surface modeling is a lot of fun when you’re designing or creating objects that you like or that are somehow connected to your interests. On the other hand, it requires great patience, attention to detail and technical quality. That’s what it really is.
First of all, I cannot stress the importance of research enough. Before I start working on any project, be it personal, freelance or for a studio, I always prepare myself by starting from the basics - looking for necessary references or any pieces of useful information. I often try to find something exciting and interesting in things that I do. When modeling a car, such as Crown Victoria, or my latest Aircraft Engine Pratt and Whitney R-4360, I want to learn more about it. I want to go deep and discover what the chassis looks like exactly and how it works, how hinges between the door and the frame are mounted, or how to find a solution to modeling cylinders with cables in the engine. All those little details make your project more believable and interesting, especially when it matches your expectations in the end - you fulfill your main premise, and that makes you even better. You not only create things mindlessly without any reason but also learn.
You always need to remember to focus on your current project, to silence exciting emotions and new ideas that unexpectedly come up in your mind. Don’t yield to them. Be prepared, and try to focus on the issues at hand, rather than pursuing new ideas without thinking about them deeply. Don’t rush.
I always try to keep a good, reasonable pace without pushing myself beyond my limits. The work progress should be well thought out from the beginning. Divide your tasks into several stages, starting from a general blockout and then going into details. Also, think about materials from the start. Make sure that rubber looks like rubber, metal looks like metal, and don’t ever finalize your asset if you still have issues to solve in your project.
Your knowledge about Subdivision Surface Modifier and practice with it is vital. There are all sorts of simple internet challenges that you should do before going into very complex hard-surface pieces because you will find yourself struggling to do things that are beyond your skill set. I recommend checking out this challenge, things like that can be extremely helpful for beginners.
I’ve seen a lot of people on the web repeating the same mistakes when trying to figure out some issues with complex geometry pieces. What they do is add a lot of unnecessary geometry loops which provide wrong shading results. Instead, a solution is to use a reasonable amount of loops that are at some point easy to control (but that’s not always possible, of course). Your model should keep a good edge flow and edge loops should be connected in a one, straight line in order to get the best results with shading and light cast on your model.
Use quads, but don’t be scared to use ngons on flat surfaces or in places where geometry is very dense. Be clever. Use your edge loops wisely, use boolean operations to add or subtract parts of the design and remember that your bevel width matters because it defines what kind of real material we are dealing with. To put it simply, at that point, there already must be a visible difference in different parts of your model, plastic or rubber tend to be soft on edges, while metal is slightly sharper.
I really like going very deep into details, because it helps make my hard-surface objects very believable. I’m trying to make them on geometry rather than texture so that everything looks like one coherent organism. Small, medium and big shapes are the basis of every artwork that I do.
Aircraft Engine Pratt and Whitney R-4360
Working Process Based on Aircraft Engine Project
Every idea requires an individual approach. Creating real-life models from photo references is different than creating something from concepts. In the latter case, we base our approach on another artist’s vision. However, in both cases, what counts is our stimulated creativity, as well as the ability to analyze shapes and lumps of a given element. The way we solve problems we face is of paramount importance to the quality of our work. Each artist’s skill set is distinctive and thus, they will create models that differ slightly from one another, but are still of high quality, have their own sophisticated, yet individual flair. The more you practice, the better your work is, and I would treat the reproduction of real-life models as a worthwhile and interesting practice.
One of my latest 3D art creations was based on a Pratt and Whitney R-4360 aircraft engine with 28 cylinders. Its massiveness and complexity intrigued me, and because I like analyzing such machines, I decided to do it.
My main goal for this project wasn’t as complicated and ambitious as you may think. The idea was to create a very complex hard-surface project for practice purposes, so I could hone my skills and build a mental library of mechanical ideas for my future personal projects. It helps a lot because you often need to delve into details, recognize a small mechanical part that’s currently in front of your eyes and guess its function. I had plenty of issues with the aircraft engine that I had to solve using reference boards and one very useful restoration video that I found on the web:
I started from base measurements of aircraft pieces for blockout reasons. That kind of a simple 3D sketch, with a very low-detail geometry, helps control the overall silhouette, scale or just the placement of particular engine parts. However, you should still be aware of potential changes in placement and scale while working on the project. This is just a general rule worth following - first focus on a general blockout shape, then work on details.
When I’m satisfied with the base shape, I move forward to the details. I often use boolean operations to add or subtract geometry and other simple Blender modeling tools, such as Extrude, Inset, Bevel. At this stage, I’m not worried about how messy the geometry can sometimes get after collapsing a boolean operator. I just clean it later manually if I really need to.
An aircraft engine seems like a very complex modeling piece to do, but in fact, when you understand how it is assembled, it’s starting to make more sense. There are objects all over the place that can be instanced, which I do with very helpful addons for Blender called GroupPro and Array Tools. Basic math can be helpful here too if you want to get everything aligned perfectly.
After you’re finished with the shape and already know you won't be going back to tweak anything, it's time to add an edge loop to finalize your model. Depending on a model’s complexity, I sometimes use the Bevel Modifier to add support to the edge loop, but more often, I do that by hand, using Offset Edge Loop, Loop Cut or Inset. It's necessary to do that and to keep good edge flow.
Working with Blender
My main software for 3D is Blender 2.8, and there are many reasons behind that. I have a wide experience with different 3D software packages, such as 3ds Max, which I used only while working at a studio for around 4-5 years, and Maya. Throughout my professional career, I have worked with different tools on different projects and I found Blender to be my personal favorite. It has exactly everything I want for making 3D art, and with the open community as well as a huge variation of addons, it gives you a range of possibilities to customize your Blender workspace environment.
Blender gives you the right tools to speed up the creation process and is highly modifiable. Everything is cleverly assigned to shortcuts that can be freely reassigned. As I mentioned before, you can get a lot of free or paid addons that help you improve your workflow. Some of them are cosmetic, but there are many that completely change the way you work inside Blender and in a positive way! Below, you can check out one of my speed-modeling videos showing how I usually work inside Blender using the full potential of addons. I used Box Cutter and Hard Ops.
I heavily customized my Blender configuration startup. For that, I used HEAVYPOLY Config, but almost 40% of its code was removed. The rest was modified and re-written so that it works for Blender 2.8 and fits my needs. Below, you will find a video made by Vaughan Ling aka HEAVYPOLY who made a tutorial for that config:
Below, I’ve listed every essential Blender addon that I can recommend:
- MESHMachine - “a Blender mesh modeling addon with a focus on hard-surface work”. I use it all the time.
- Boxcutter - “the most powerful boolean subsystem for B3d”. It allows you to quickly and easily cut objects using booleans.
- Hard Ops - a tool “intended to be a workflow assistant toolkit”.
- GroupPro - an addon that helped me a lot with the Aircraft Engine project. It allows making “collection groups”, especially useful when you work with instances a lot.
- Modifier List - an addon that makes your modifier stack much more readable. It puts all of your used modifiers on top. If you want to change some parameters, you need to click on one of them.
- Texel Density Checker - a must-have addon for everyone who extensively works with UV mapping and texturing. It helps keep a good scale of your UV islands on your meshes.
- QBlocker - a tool that lets you “draw” your object primitives on top of another object taking face normal orientation into account.
- Material Utilities - an addon that adds a bunch of useful options for materials, such as cleaning unused material slots, or assigning one material for every object selected.
- All Material List - an addon that offers a preview of all materials used in a scene. This tool is placed in Material Properties.
- Rebevel - an addon that allows changing bevel width very easily.
- UVPackMaster 2 - an addon that helps you efficiently auto pack your already UV-mapped islands.
- BatchOperations - a smart data-management tool for Blender 2.8.
- Array Tools - array which is easier to control.
- Offset Edges
- Loops Tools
I use the above-mentioned addons from time to time. In most cases, I just use simple Blender tools such as Inset, Boolean, Bevel, Shear, Custom Orientation, Bridge, and many others.
Materials and Textures
Creating complex and reliable materials requires purely theoretical knowledge, especially of PBR. This is the key to achieving the desired result as it lays down some ground rules that you should consciously follow from the beginning. The chart below explains it in a clear way. It’s worth to have it nicely framed above your desk.
Texturing in PBR can be divided into two workflows: metallic and specular. The difference between them isn’t noticeable in the end result, but there is one in the way the textures are created. Whichever standard you choose depends not so much on your preferences, but more on the technology or engine that you are working with. It is therefore accepted that the metallic workflow has become the standard because of its simplicity and optimization capabilities.
Materials in Aircraft Engine
For this project, I haven’t created any textures. I didn’t even unwrap this model. I just made simple materials that use proper PBR values for specific material types that I wanted to use - painted metal, rust, plastic, rubber. During the process, I sometimes checked them in a flat preview to see the relation between each one of them. And I always have to ask myself questions like “how much space does yellow or white take?”
I used a few additional shader nodes to add rust for the base green color.
Tools for Making Textures
Many years ago, when tools like Substance Painter or Quixel weren’t popular yet, I started making textures in Photoshop, just like everyone else in those times. Then, Quixel DDO started gaining popularity, so I decided to give it a try. And I fell in love with that addition to Photoshop, mainly because it has many valuable features that significantly improve the quality of my works.
MAC 10 and P99 I textured using Quixel DDO/Photoshop:
Soon after, Substance Painter became a popular standalone tool for texturing, which a lot of game artists liked from the start, and so did I.
MBZ weapon system based on Weihao Wei's concept. Textured in Substance Painter:
Trying to pick the best software for texturing might be a challenge. I think it all depends on the specific task at hand. Photoshop, Mixer, and Painter alike can be used in their own specific way. You might do a prop, a weapon, or something as complex as environment building modules. All those assets require a different approach to achieve the best quality in terms of visuals, optimization, and smart usage if you create them for a game. For example, you can make textures for a unique prop in Substance Painter, but creating textures for environment modules or terrain may be easier in Photoshop, Substance Designer or Mixer - it’s your choice.
In most cases, I prefer to make final textures for designs or props in Substance Painter, because it’s a standard software solution for game art used in the game industry - proficiency with this tool is a must-have for many studios nowadays. Another reason is that I’m used to it and I already compiled a huge library of materials and textures that just speed up my texturing process. Using Photoshop might be outdated just for making prop textures, but I wouldn’t completely abandon 2D software packages, they’re still useful in many cases.
Preparing Lighting for Your Projects
Making a proper lighting setup can be a struggle for everyone because lighting means everything. If you’ve spent weeks or even months creating an amazing 3D artwork but your lighting looks flat and boring, the overall impression will be worse than you expect.
For rendering my finalized works with materials or textures, I mostly use Marmoset Toolbag and Eevee from Blender 2.8. Both renderers are great and offer real-time rendering, which simplifies the process of making iterations - and it’s something I really like to do.
As you may have already noticed from my projects on ArtStation, I also make clay renders for my high-poly objects. For those, I’m using Cycles, which is a path-tracing render engine, that gives much better results in my opinion, especially when we are talking about shadows and overall depth. On the other hand, it takes much longer to render your image comparing to the previous renderers that I mentioned.
Rendering High-Poly
My rendering setup for clay renders is quite simple, and I’ve been using that technique for many years in most of my works when I render high-poly objects in one default color.
I’m using two simple mesh objects as a Light Emissive shader, with different light intensity and color. I also add the floor if I need it. In some cases, I adjust the position of those objects to get expected results.
To achieve clay-like material, I use a few nodes inside the Shader Editor. The material I’m showing in the picture was made in Blender 2.78, but I’m pretty sure that you can achieve similar results using just the default Principled BSDF shader in 2.82 by setting up PBR values. This material is used on the whole scene, floor included.
The real magic happens in Compositing, where I add color correction to improve the color value and achieve a proper intensity of light in relation to the shadow.
But wait, there’s more! When I want to sharpen my models in a clever way or make the colors pop out even more, I use a small trick in Photoshop with the High Pass filter.
I open my rendered image, duplicate the layer of that image and use the High Pass filter with its value set to 2 - 3. Then, I set the blending mode to Overlay. And that’s basically it. Sometimes, you need to tweak those values a little bit to achieve better results, but in some cases, it just doesn’t work great. Remember not to over-sharpen your image!
Rendering in Eevee
When using Eevee, I mostly want to show the object in full flesh, with PBR materials, so in this example, my lighting setup is a little more complex - but still easy to implement. The reason for this is that I set the lights up based on camera position to get the most out of the scene. I often use between 4 to 8 lights, depending on my needs. Just remember not to put too many light objects, because you will lose control over your scene, and probably flatten the lighting too much.
I use black color for my world environment at the initial stage while I set up my lights for a typical studio render, just because in this way I can see how light reacts with my model clearer. Having additional colorful lights from an HDRI map that lit my scene would be a bit confusing. Sometimes, I use an HDRI at the end of the project to add subtle color lights if I find them interesting.
In the scene collection, you can notice how my project is arranged. I usually create collections with different camera positions and lights that fit a given shot best. This helps me keep a clean and understandable working environment.
It’s also worth knowing how to keep an HDRI map in the World, but without seeing it in the background, and below is a simple solution for that.
Volumetrics add a little bit of depth, if they’re used wisely, and make lights much softer.
One huge advantage of working with Eevee is how fast and powerful that real-time engine really is and what great results you can achieve. Yet, if you are not satisfied with it, you can easily switch to the ray-tracing rendering engine, Cycles, to achieve more accurate results, but with longer rendering time.
My main goal was to define the direction of light and the focus point that I thought should be highlighted in that particular shot.
Rendering Wireframe in Blender
Here, I wanted to share wireframe screenshots of my project. I did that by setting up background to viewport and object color to single, white, with mesh wireframe turned on in order to use that shot as a mask, which can then be combined in Photoshop. If you want to grab that viewport image, just go to View and choose Viewport Render image.
Contrast and Plane Changes
It’s crucial for me to keep the shape of an object readable without confusing the viewer. That’s why plane changes are important. Sometimes, it's better to have fewer lights.
If you want to dive deep into creating good lighting, I recommend that you check Lighting Fundamentals and Rendering in Keyshot by Alex Senechal, a very valuable resource. Alex is a huge inspiration for me.
Conclusion and Advice
What drives me in hard-surface is the hunger for technical knowledge. This knowledge, in turn, enables me to create any complex mechanical object I really want. My advice for you is to find your own angle, something that makes you interested in the topic and inspires you to learn it, be it vehicle, mechanical, or weapon design. After all, every step in the right direction comes with great satisfaction. Although so far I have gained plenty of experience, I still have a lot to discover. This sense of insatiability is actually beneficial because it pushes you forward to further develop your skill set and look for new solutions to implement into your pipeline. Lately, I have been learning design and improving my drawing/sketching skills. I’ve been focusing on that for several months now, working on new personal projects and I have come to a point in my life when I would like to use my knowledge for my own ideas.
That’s what it is all about. Do not rest on your laurels. Try to look for inspiration in everything that surrounds you, something that not only looks interesting and “cool”, but that will enrich your knowledge and could be used for your own ideas in the future.
Don't get obsessed with continuous modeling. Instead, get some rest and look for resources that will help you grow in different areas. If there was something I struggled with, I would grab a relevant book and study in peace.
When I wanted to learn more about vehicles, I read H-Point: The Fundamentals of Car Design and Packaging by Geoff Wardle and Stuart Macey. When I wanted to learn more about lighting, I read Color and Light A Guide for the Realistic Painter by James Gurney. And when I wanted to gain more insight about weapons, I read Small Arms: Visual Encyclopedia by Martin J. Dougherty - which was a present I received - containing 800 pictures and descriptions of technical aspects of weapons. Sketching from the Imagination by 3dtotal Publishing can be also a good inspiration for every artist. Of course, you don’t need to through your money every time you don’t know something, but remember that investing in yourself is worth its weight in gold.
Lastly, follow and take inspiration from your favorite artists - keep up the work to achieve their level and surpass them one day or find your own unusual style.
Thanks to Patrycja Polowczyk for English text verification and edit.
Michał Kalisz, Environment Artist/Prop Artist at CD Projekt Red
Interview conducted by Kirill Tokarev
Keep reading
You may find this article interesting