Posted on March 19, 2019 at 15:55 PM
Hard surface modelling and PBR texture maps creation.
By: Gloriya Gostyaeva
Tools: Unreal Engine 4 Maya Zbrush Photoshop Substance Painter
The goal was to create a hard surface 3D model ready for Unreal Engine and create a material for it using PBR metalness workflow. I also wanted to practice Substance Painter software using the free trial version.
A pair of binoculars would be a very small and low-poly object in a game, but for this exercise I decided to treat it as if they were a massive space ship so I could allow myself to model extra detail.
I would like to present a step-by-step guide covering what I did to create the binoculars model. It's a very large process so I won't go into as much detail as I would wish, but I'll respond to any questions you have by email.
I will be covering the following areas:
But first I would like to show you the results of the project:
Final model in Substance Painter:
Binoculars in Unreal Engine scenes:
I used an old pair of binoculars as a reference. This object was very interesting as it had an extensive wear, was composed of various materials and had some fine detail which could be a challenge to represent:
Do both coated metal and rubber elements have different properties even though the colour is the same?
I used a currency inspection microscope on the binoculars and the answer to the question revealed itself:
Top left is the metal coated in paint. Top right is what I call rubber, but actually it is painted rubber. Even though the paint used on both materials is the same, the surfaces have different micro detail to them. Rubbery parts are more porous, therefore the reflected light will scatter more, whereas painted metal is more smooth, more glossy and less rough. Two pictures in the bottom show other surfaces in UV light.
I used Maya to start the modelling. First I started by creating various primitives, scaling and arranging them into the shape of the binoculars. After that I fixed the topology of the shapes and connected everything together, making sure there are manageable loops and correct edges everywhere:
This model has more than enough polygons for a simple pair of binoculars in a video game. But I wanted more challenge and like I mentioned before I was treating the model as if it were a big spaceship or an item that the player would observe from a close range.
From this point on I was working in ZBrush on a high poly version of the model in order to create all those little ridges and patterns on the scopes. Here is a sculpted model in ZBrush:
After that I decided to also add the ridges to the sides of the scopes to the topology of a low poly model as they are a prominent feature that I would like to be a part of the silhouette. Transferring them to a low poly model was simple by using quad draw tool in Maya and using the high poly model as a live object. After that I created a UV map and triangulated the model:
I downloaded a trial version of Substance Painter so I could try it out with this project. This software has plenty of documentation and tutorials so it took me just couple of minutes to figure out how it works and which tools I needed to use for my project.
I started by baking my normal and ambient occlusion maps. As I was using a PBR metalness workflow, I also needed to create albedo, metallic and roughness maps.
Here is a screenshot showing what binoculars looked like in Substance Painter after I applied some base colours and materials. I've also copied the chipped paint bits directly from the reference as accurately as I could using brushes.
The original binoculars have a text on them, so I created alpha masks for them using photoshop and the reference photos:
In the end of the process I had this set of texture maps:
The first place to test the resulting material was Unreal Engine. After importing the model and assigning all of the texture maps, the only issue I had was with roughness. The model appeared too glossy. A solution to that was disabling sRGB in the properties of the roughness map. I also did that for the metallic map.
Here are some screenshots of the binoculars in Unreal Engine:
The process was very straightforward and fun. I practiced hard surface modelling and I learned more about how much of the detail needs to be modelled vs how much can be done just through normal maps. It was interesting working with a real life object and seeing how it can be transferred into 3D. Also using PBR metalness workflow was a new thing for me and I can see how powerful it is, so I am looking forward to using it in future projects.