A few months ago, I made a prop “Tram Controller”. While making this prop, I found a very useful surface scan in the Quixel library. This was a scan of rusty metal with peeling paint. I projected a scanned normal map to my model and got a very interesting result.
I thought I should make an entire model with this technique, not just one hole in a paint. So, it became my goal: to make the entire model with projected normally. I chose the bumper car because there are not many metal parts in it. My previous prop was made of metal. But the bumper car is mostly polypropylene and rubber.
Photos of broken bumper cars are not hard to find. Some of these photos are from Chornobyl. Some photos are from other abandoned parks. And I made a few photos myself.
I make my models in 3Ds Max 2014 (not because this is the greatest modelling software, but because I’m used to it). Then Zbrush. Then Substance Painter.
Basic High Poly modelling
I try to avoid support edges in high poly modelling. Quad Chamfer modifier is a better option for me. This is a paid plugin for 3Ds max which … adds quad chamfers to selected edges. A pleasant side effect of this modifier – every chamfer in your model has the same radius.
I don’t spend time in 3Ds Max making smooth intersections between two parts of geometry like this:
Instead, I export these parts to ZBrush. Subdivide geometry a few times and then hit the DynaMesh button. This function “melts” two intersected models together and we will get a nice smooth intersection for free.
Here is my workflow:
1) Export the model to an OBJ file.
2) In ZBrush go to Tools -> Geometry -> Divide Divide Divide!
3) Go to Tools -> Geometry -> DynaMesh and press the DynaMesh button.
4) You should get something like this. Then you can add weld and some damage. Export it back to 3Ds Max.
Here I’m making a shape of a blue tape in 3Ds max and then I’m adding wrinkles in ZBrush.
This is my workflow for making the tape:
- Create a helix spline
- Add a bevel modifier
- Remove unnecessary edges
- Tweak geometry
- Duplicate few times
- Add “Shell” + “Turbosmooth” modifiers
- Move vertexes to add some disorder
- Add “Bend” modifier.
We then bring it into ZBrush!
1) Chose this alpha and set brush mode to “Drag”. LightBox -> Alpha -> NPR -> AlphaPaint_Tiling
2) Press Shift on a keyboard and smooth wrinkles.
3) Export back into 3Ds max.
I’m not a big sculpting expert. All I can do is drag some alphas on a surface and made simple damages and cracks with premade brushes.
Here is how I sculpted the bumper.
For the body of the car, I used concrete damage brushes.
Here is another example of how I used the metal damage brushes.
This is the most boring part of the production. Back in the days, when ancient people painted their models using Photoshop, packing UVs was an important step. Nowadays we can use Substance Painter and we don’t care that much about UVs placement.
I try to follow simple rules:
- Fewer seams are better.
- Try to straighten UVs if necessary.
- Respect the padding between UV shells (when you make a model for a real game and don’t bother if you make a model for your portfolio).
I made 4 texture sets for this asset. As you can see, I made straight UVs for the tape on the wheel. It allows me to add directional grunge and additional wrinkles to the tape’s texture.
Usually, I bake normals in 3Ds max. I apply different material IDs to different parts of the mesh and bake an entire model in one run. To help me identify what mesh has what ID, I apply a Multy material with different colored sub-materials to the model.
The most interesting part of this texture is the peeling paint.
At first you need to go to Quixel Megascans and find any scans of peeling paint. It can be any paint on any surface, not just pained metal. This is few scans I used in my project.
Then made two basic materials: a paint layer and some layer under a paint. Let it be rust in this tutorial.
Add a new layer “Projected Normals”. (Not a fill layer!). Place downloaded maps into appropriate slots in Properties – Projection.
Now paint! You need only an edge of a paint.
I recommend painting with all channels. It’s better to disable unnecessary channels later. In this case, we need only Normal and AO channels. Disable Albedo and Roughness.
Here comes the most time-consuming part. You need to mask a hole in the paint manually.
I didn’t find effective way to make this mask automatically. So, I mask every hole by myself.
Now we can improve this effect. Place an Anker on the “Projected Normals” layer. Create a new layer “Projected improvements” with black Albedo and white Roughness. Use “Projected normal” Anker as a mask. Switch “Reference channel” to white.
We can further improve this material by adding paint bumps. We can use B/W Grunge map for it. Or we can use the same Quixel scan as a paint bump.
Let’s also add a layer of primer. Take paint mask anker, apply a filter “Blur Slope” and multiply by inverted paint mask.
Nice result. It looks exactly like a reference!
Painting these holes demands a lot of time. It’s better to allocate hole’s placement according to your photo references.
You don’t have to repeat the shape of a scanned hole. You can rotate projection tool while painting normal on your model.
This was my result:
This is a combination of Quixel textures and green dirt decals from Textures.com.
I’ve added a dirt trim (Textures.com) and a few very stretched alphas to simulate paint marks on a bumper.
I didn’t find the appropriate texture or material online, so I made the floor material myself.
For this prop, I created a group on Telegram and invited my friends and colleagues. I shared my progress while making this prop. And sometimes they gave me valuable feedback. It was an interesting experience. I’m sure next time I will do the same thing. It is more interesting to make something together.
Usually, I render my models in Marmoset Toolbag. But this time I used iRay render in Substance Painter. Actually, I pressed the “Render” button in Painter by accident.
Painter started to render an image and I was pleasantly surprised by the result. There are not many tweaks and settings in this render. You can’t even place your own light sources in a scene.
You can only choose an HDRI and tweak post-processing. But in exchange, it is very easy to set up, and you don’t have to export textures to different software.
This method of making peeling paint is not for everyone. At first, you must browse through the library of scanned material looking for a fitting shape.
Second, you must paint a mask. Both steps are very time-consuming, especially if your model is big. You can find faster ways of making similar effects.
Thanks for reading! I hope this breakdown will help you with your own work.