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. http://imgur.com/a/f8tnM
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!
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
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 (http://www.youtube.com/watch?v=KHT82-KYhRw) 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! 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!
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?
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.
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.
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!
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!