Interesting post from AnswerHub on how to setup a Layer Car Paint shader

Alright, the tutorial will be out tomorrow! The plan was to finish it tonight, but I found a few areas where the system needed a little more attention.

For now, here is a small example of the versatility of the shader. With a little experimentation using instances, it is possible to simulate most types of car paint surfaces.
This link is to a small gallery of the shader in use on a motorcycle asset, with more advanced lighting.

Alright, the tutorial is complete! It’s still a little rough, so you will have to forgive me for the spelling/grammatical errors.
If you have any questions or comments, feel free to message me.

Good luck everyone!

Thank You, Thank You! I just quickly skimmed through, and found it is in my favorite format for material tutorials, Written with pictures! :smiley:

I will be starting the tutorial in the morning tomorrow, and will give you some feedback (and maybe some cool photos you can use to see how it looks on mine as I go through it (and try it out :slight_smile: ).

But again, thank you so much for all of your hard work, and for sharing it with all of use, it looks fantastic! and will be extremely valuable for my car racing game I have in the works!! :wink:

-Continuing work on the car paint shader-

I’ve started to increase the versatility of the car paint shader. I am adding features like color masking and maybe even a grunge/rust layer. It’s a little intense at the moment but I think the hard work will be worth it!

Hey guys, I’ve made a lot of progress with a masking system and currently putting together a grunge/rust layer system based on vertex color.

I also solved the issue which was preventing normal maps from affecting the reflections. So orange peel! Here is a little sneak peak at what’s now possible with an instance of the material.

A little side project, for you all of you modern car materials people!


I’ve been doing a little work, revisiting transparency with my updated reflections and masking system. It is able to produce some good looking glass! I’m putting together a package to send to the marketplace. It will include: 3 variations of the car paint materiel, 3 variations of carbon fiber, and the new glass shader.

Here is a little look at an updated car paint model with the glass shader.


Looking great and glad to see you are back working on it Stimpanzee! And also hope your wedding went great bud :wink:

I’ve been working a little here and there on a good car paint material and it’s not too bad. The metallic flakes aren’t 100% and I’m actually doing some emissive boost to get them to pop however it doesn’t look natural once you get close to it. I stepped away from it but want to come back to it shortly. Are you planning on distributing the material with the textures publically? I personally would love to see the normal maps you are using and how you go about composing the metallic flakes and getting them to pop based on the normal of a given flake and/or using the camera vector node.

A guy did this for Siggraph 2014 ( and I want to try and dig a little further in his paper and try to see if this is possible for real-time. Anyways, great progress and hope you are enjoying the weekend! Take it easy bud.

Edit: Looks like you already did release the tutorial! :smiley: Great work Stimpanzee and I’ll need to link with you and get you an updated version of my Joystick Plugin to nail out the remaining issues but glad to see you got it up, going to read it now!

Nice work, looks really good!

Looking really good Stimpanzee!! It’s been a while since I have been able to work on the shader I created from your tutorial, however clearly you have made some great progress! The glass & carbon fiber additions looks really good man, nice work.

I think I recognize the emblem (and the shape of the car fits the model)… Is that a Pontiac Firebird I see? :slight_smile:

Thanks for the video link! It’s cool to see their approach for flake normals. My system takes advantage of a masking flake texture/noise normal map to produce the flake. The custom map they use for rendering unique and randomized flakes is a good approach. I think that would be a great way of simulating dense flake layers.

My textures are using much less dense flake patterns, and each flake is being handled by individual pixels. Essentially, the flake in my material is enhancing the look of a solid metallic surface, adding high contrasting highlights. I will have to see if I can find a way of generating a similar map to the video. I think that UE4 could definitely handle it! And it might look a lot better than my current setup!

My original plan was to create a similar normal map, but after testing, the masking system seemed to work nicely. But after seeing these results, I am definitely going to have to revisit the normals.


Rebuilding the Normals

After seeing the video linked by MC Stryker, I was inspired to rebuild my normal maps for the flake. I am using a new normal map and included a new parameter within my material to enable “full flake” The parameter overrides the flake mask, which then boosts the glint effect from the new normal map.

It has massively improved the look of the shader! Thanks for the link MC Stryker!

You will have to excuse the crappy gif, because it certainly doesn’t do it justice!

Thanks DotCam! I keep getting caught up in the improvements and variations. I think I might have inadvertently become a shader artist. haha

And you are right about the Firebird! I found the model online, and it’s been fun for testing. I am looking forward to wrapping up the shaders and getting back to my motorcycle game, though. It feels like I’ve been working on these materials for a long time!

Really interesting tutorial man. I followed all steps in your tutorial and get some nice results. Awesome. How do you made the carbon fiber material? I am trying the carbon fiber shading reusing some of your shading network but not getting so good results as yours. I guess it is cuestion of time tweaking some parameters and a good texture.

You are a talented shader material man!

Thank you!

Thanks iparra! I’m glad you are getting good results from the tutorial!

The carbon fiber material is very simple. The only complex portion of the shader are the reflections and reflection masking system. The rest of the material can be extremely simple. For the image on this post, I was using a 0,0,0 vector for diffuse, a solid 1 for metallic, and a .3 for roughness. The material relies heavily on the normal map.

I crafted the normal map in Maya, modeling individual strands, and texturing the filaments. I used transfer mapping to produce the normals map and also a mask texture for something special, which I haven’t shown off yet. I thought it was important to do a normal map from scratch. I learned a lot about carbon fiber construction in the process, which is a plus!


Alright, another day - another update!

I finished adding a new feature to the shader. Rust!

The rust is being driven by vertex colors, so you can paint exactly where you want the rust to form. Then, there are a few parameters to fine tune the look rust.


And with a few shifted parameters…


The shader itself, is getting a little more difficult to work on - because of how large it has become!


Thank you Stimpanzee! I will give a try to your advice.


Took a bit of time to dial in the standard values for the dynamic rust system. Ended up playing around with an instance until I was happy with the results. Take a look!


This is a good example of how adaptable the system is. The best part is that it can all be controlled through instance parameters, so not only can you dramatically change the look of the paint at runtime, it’s also easy to dial in the right look!

And of course the system is still running real time reflections based on a scene capture actor!

Video Update

Back again, with a video this time!

I have been running the shader in real time with the standard vehicle physics template. (I just fliped the visibility of the standard car mesh, and inserted a static car mesh into the blueprint.)

The results are promising! Thanks to the shader, it is possible to run car paint and chrome with high quality reflections on dynamic objects!

Take a look:

It’s amazing to see how much you’ve improved this shader. :slight_smile: