UE4 RnD – Custom Shaders: The impossible one

Colored specular maps are a common feature of all offline renderers and a good deal of realtime engines, however Unreal does not support this in the 4th iteration of their engine, opting instead to rely on Metalness maps which while overall better looking can greatly limit the material possibilities.After countless hours looking through engine notes and online forums the only answer I got was that it was impossible and unsupported, while the alternative Fresnel solutions were subpar – looking like pearlescent paint at best (a material effect I already had)!

Example1I1

I decided to develop my own solution to the problem. Breaking it down I figured that I needed access to the cubemap data that reflection capture actors get when the level is built, in the material editor. This initially this proved impossible.
*This technique is still very much still a work-in-progress that has some powerful potential behind it and I don’t feel comfortable sharing details about how it works just yet*
The techniques works both in realtime and with prebaked effects, the latter of which is the only one that supports roughness.

Material Set-UpI2

Result Comparison Keyshot vs UE4
I3

Results
I4

Conclusion – Great success in making something that all the forums and documents painted as impossible. Other features include the ability to use colored textures as secular maps or even color hue inputs to create some truly reality bending materials.
Currently this solution comes in two versions baked and dynamic with either being heavy on hard-drive size or computing resources respectively. Moreover when it come to roughness currently only the baked solution offers this feature, though more development may fix this.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s