PBR Shaders... Can the Unity-devs offer a little help here?

So, I found a stellar link that helps the artistically-minded (aka: the people that those talks and papers that John Carmack made about PBR shaders went RIGHT over their heads.)

http://www.artisaverb.info/PBT.html

That’s the link (not my link, it’s image heavy but checks out.) So, if you’re an artsy type and needed to understand PBR shaders, this I suspect will help you a great deal in understanding them.

But that leads me to the next question to the Unity team… What are the settings you’re hoping to aim for going to be? I am reading this and it seems that the usual suspects will be Albedo, Metallic, Gloss/roughness and Normal. But some details would help because I’ve got it in my head to learn how to do this and if I can set up a system in Max to preview them accurately I can get to work on creating things that use this.

Personally, the one I’m most curious about is the gloss/roughness map… There seems to be some confusion about what engines interpolate it as… Are you aiming for a “white=gloss, black=rough” or the other way around?

I’m actually not nearly as mystified as I was thanks to Artisaverb.info… And now I think I’m ready to tackle this… But I’d love to hear how Unity will officially handle these so that us content-creators can be ready for when Unity5 eventually gets released.

2 Likes

Have a look here

Well if you’re used to the 3ds Max standard material you probably shouldn’t have a problem with PBR, since as far as I’m aware they’re similar. That’s what I use to preview in 3ds Max. I have a custom kinda-sorta PBR shader I made in Unity and the Max standard material already has slots for diffuse/albedo, gloss/roughness, specular/metallic. The results are very similar, I can post a comparison image if you want.

As far as I know, I understand Unity 5 will be using the traditional PBR (I think it is based on Disney BRDF). I use Alloy so I would not know what shading model it is.

There is no confusion, its down to semantics. If the engine is using glossmap/glossiness then black is rough (very blurred reflection) and white is smooth (very sharp reflection). If they use roughness then its the other way round, black is smooth (very sharp reflection) and white is rough (very blurred reflection). Basically black = none, white = max, then its dependant upon the name of the property they are using as to how that effects the smooth/roughness.

However I agree with Andrew Maximov (the guy who wrote that page you linked to). I think Roughness should be used as it breaks with convention of the old naming and avoids people thinking that glossiness has anything to do with changing the brightness of an object, which it tended to (appear to) do in old lighting systems.

I’m also with him on the specular vs metallic maps, I find thinking in terms of metallic or not metalic far simpler than specular/diffuse combinations.

For these reasons I really hope Unity 5 PBS is going to follow those conventions or at least provide both versions and let the developers decide.

Of course you don’t have to wait for Unity 5 to get into this. I believe Marmoset is going half price today (an hour from now) and you can get Lux for free.

Alloy also uses the metalness/roughness setup, making PBR super simple.

Has anyone ever done an in-depth analysis of the competing PBS/PBR assets? Would be really useful as i’m quite tempted to get Marmoset since its half price and might have a client project that needs PBS earlier than Unity 5 will be released.