Slava Alpinsky shared his workflow behind the Bumper Car project, told us how he set up metallic, paint, and rubber surfaces, and spoke about the techniques that he used to create a feeling of abandonment.
Hi! My name is Slava Alpinsky. I’m 35 years old. I’m a self-taught artist. I guess I learned everything related to 3D by watching videos on YouTube – I don’t have an appropriate education. In 2009, I graduated from the technical university with a degree in Computing Systems and Networks but I never become a software engineer.
I started my career in game development 6 years ago, when I was fired from my previous job. Before game development, I was an artist in a design studio. I made boring 3D illustrations for the web and commercials. I didn’t even dream about real game dev. There were no game companies in my town and remote jobs were not a thing back in the days.
While working in design studios, I made a few game-ready props just to entertain myself. But it helped me find my first job in a European company with an office in my country. And I still work here. Sometimes I work as a part-time artist on different projects for outsourcing companies.
Below, you can see my first game-ready prop. Someone even bought it on 3D stocks.
Inspiration and References
A few months ago, I made a prop called Tram Controller. While making this prop, I found a handy 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 a goal of this project: to make a full model with a projected Normal. I chose a 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.
Slava Alpinsky's prop
I didn’t use any concepts, there was no need. Photos of broken bumper cars are not hard to find. Some of these photos are from Chornobyl. Some images are from other abandoned parks. And I took a few photos myself. I have an 8-year-old kid, it means I have to ride in a bumper car from time to time – a perfect opportunity to make some photos.
I did not try to make an exact 100% copy of a real car. At first, I started to make this car because I found good reference photos. In the process, I decided to alter the car design.
There are a few moments that might interest you:
- Bended planes like this help me keep the correct shape of a car.
When I make a high poly model, I get distorted mesh like this from time to time. I need to straighten it – to do this, I detach a piece of geometry. I use the Freefrom – Comfort & Relax tool to even space between vertexes. I select a brown plane as a reference (the "Paint on" option) and attach it back.
- I try to avoid support edges in high poly modeling. 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 is that 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 I get a nice smooth intersection for free.
I export a model to an OBJ file. In ZBrush I go to Tools – Geometry – Hit the "Divide" button a few times. Then I go to Tools – Geometry – DynaMesh and press the DynaMesh button. After that, I can add weld and some damage and export it back to 3Ds Max.
- Blue tape.
In 3Ds Max:
- create a helix spline;
- add a bevel modifier;
- remove unnecessary edges;
- tweak geometry;
- duplicate a few times;
- add Shell + Turbosmooth modifiers;
- move vertexes to add some disorder;
- add the Bend modifier.
- chose an alpha “AlphaPaint_Tiling” and set brush mode to “Drag”. (LightBox – Alpha – NPR – AlphaPaint_Tiling);
- press Shift on a keyboard and smooth wrinkles;
- export back to 3Ds Max.
I’m not a big sculpting expert. All I can do is drag some alphas on a surface, and make simple damages and cracks with premade brushes.
For the body of the car, I used concrete damage brushes:
I make low poly models, UVs, and bake in 3Ds Max. I try to design a high poly model in such a way that it will be easy to make a low poly model from it. Usually, I have to remove a few edges from a high poly model and low poly is done. These are a high poly model without Turbosmooth and a low poly model derived from it:
While making a low poly model, sometimes it can be hard to decide how many segments of each circle I should make. To quickly solve this issue, I use these colorful circles which have the same polygon size for circles of every radius.
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 3D 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 – 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.
I bake normals in 3Ds Max. I apply a different material ID to different parts of a mesh and bake an entire model in one run. To help me identify what mesh has what ID, I apply Multy material with different colored sub-materials to a model.
The most interesting part of the textures made for this project is the peeling paint.
If you want to replicate this effect, 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. These are a few scans I used in my project.
I made two basic materials: a paint layer and some layer under a paint. Let's call it "rust" in this breakdown.
I added a new layer, Projected Normals (not a fill layer!), and placed downloaded maps into appropriate slots in Properties – Projection.
And then, I moved on to paint. I needed only an edge of the paint.
I recommend painting with all channels. It’s better to disable unnecessary channels later. In this case, you need only Normal and AO channels. Disable Albedo and Roughness.
Then the most time-consuming part was. I had to mask a hole in the paint manually.
I didn’t find an effective way to make this mask automatically. So, I masked every hole myself.
Then I improved this effect. I placed an Anchor on the Projected Normals layer, created a new Projected Improvements layer with black Albedo and white Roughness, uses the Projected Normals Anchor as a mask, and switched the Reference channel to white.
You can further improve this material by adding paint bumps. You can use the B/W Grunge map for it, or you can use the same Quixel scan as a paint bump.
I also added a layer of primer. To do this, I took a paint mask Anchor, applied the Blur Slope filter, and multiplied it by the inverted paint mask.
I liked the result as it t looked exactly like a reference!
It took a lot of time to these holes. It’s better to allocate the hole’s placement according to your photo references.
You don’t have to repeat the shape of a scanned hole. You can rotate the projection tool while painting Normal on your model.
This was my result:
In most cases, before starting new material in Substance 3D Painter, I check what can I find online. For metal parts, I found this material in the Quixel library. And I added a green decal from Textures.com.
I didn’t find the appropriate texture or material online, so I made the floor material myself. It’s a combination of premade rust material, clean metal, and paint.
I'd like to tell you about an interesting effect that can be found in Filters. "Warp" adds uneven edges to your mask.
Rubber is a simple black fill layer + dirt generator + dirt trim found on Textures.com. To make it more interesting, I added a few very stretched alphas to simulate paint marks on a bumper.
Creating a Feeling of Abandonment
During the time I work on this project, I learned that this peeling paint takes a lot of time when you want to cover the entire model in it. If you don’t have time to do it, I think you can use more time-saving techniques like this.
Speaking of abandonment, I think the dust layer adds to this feeling. I made this dust effect using Mask Editor – World Space Normal. I also multiplied it by grunge and subtract a few alphas with wipes.
Setting Up the Model and Rendering
I didn’t do anything special to render the car. The model is lit by a standard Substance 3D Painter’s HDRI called Bonifacio Street.
Originally, I was planning to render this model in Marmoset Toolbag like I always do. But this time I used iRay render in Substance 3D Painter. Actually, I pressed the "Render" button in SP by accident. SP 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.
In Substance 3D Painter, I always set Tone Mapping to Auto. I don’t know why it is set to Linear by default. In every second tutorial, I see advice to switch this setting to Sensitometric. (Auto gives the same result).
Substance 3D Painter allows saving an image with transparent background. Therefore, I can add my own background in Photoshop. I found a random colorful image online, blurred it, and placed it as a background. Then I added color correction layers to boost contrast and saturation. That’s it.
I think the main key to creating an appealing prop is time. I can’t make a good model fast. I must spend time trying different techniques and see what works and what doesn’t. And the main challenge is to find free time to practice and not burn out during the process.
The next important thing is experience. When you make something for the first time, you rarely can make it good. So, practice!
You may find these articles interesting