Using PBR textures in Cycles?

I’ve been trying to match the Disney principled BRDF in Cycles, but I can’t quite get there. My diffuse always appears way too dark. The glossy component is GGX with roughness linear roughness, squared - it also doesn’t quite match designer.


I can sort-of-kind-of fudge it by adjusting the gamma of the diffuse, but that’s not what PBR shading is about. Any ideas how to create a proper nodegroup for diffuse/roughness/metallicity/normal PBR textures to properly match Substance Designer?

You mean based on this one? I’m currently trying to setup something similar (kind of a not so uber uber-material :)), and the thing that has caused me greatest issues are the combination of metallicness and variably tinted specular as one affects the other (in my setup anyway, but I’m pretty noob in Blender/Cycles). I don’t have access to their software, so for me it’s guesswork trying to figure out if and how various sliders are interlinked. I’m also using translucency (with tint control towards base) as kind of a replacement for SSS (I need mine to be GPU friendly), but metals don’t have any transparent properties, so that caused some additional issues.

What do you mean “The glossy component is GGX with roughness linear roughness, squared”? I currently use Beckman for metallicness and GGX for specular, and will probably use Beckman for topcoat as well (not there yet). I use fresnel node for specular, but only blend value for metallicness. In my setup, at full metallicness, I have no specular mixed in at all (as its grazing angles will always be white and not realistic to pure metals).

One trick I always do is to significantly darken the diffuse component of metals, even if its contribution is very low. That way I can add additional base gloss to a diffuse component (low amounts, so the metallic colorization won’t be noticeable), or simulate very rough metals by using a tad of low intensity diffuse at the bottom, freeing up the metallic glossiness to produce narrower highlights while having it bright enough to produce desired effect. For me, a material is either metallic or dielectric, so their approach of allowing 50% metallicness sounds silly to me. 10-20% or 80-90%, maybe (metallic impurity and so on).

I operate in groups; “Diffuse or Metallic” (also handles translucency), “Specular”, “Sheen” (not fully in yet), and “Clearcoat” (not in yet but should be easy). In the two main groups, a lot of pipes go in to vary effects that shouldn’t need to be, but I am using Mix Shaders for everything so far. I’m arguing with myself if Add Shaders controlling what goes into it at the end (to maintain energy levels) would be a better approach. I’m not sure.

I can post screenshots of where I’m currently at (I’ve ruined everything a couple of times already :D), but it’s just too messy at the moment. I’ll keep this thread in mind if I ever finish it.

This doesn’t look like something a limited application of the add shader node can’t fix (use it in conjunction with a couple of mix shaders so as to emulate a sort of fac. input).

You ask for nodes, so I’ll give you some. Keep in mind I’m a noob in Blender, and maybe you’re asking for something completely different. I have no idea what Substance Designer is (I checked it out on youtube, but, is that usable with Blender?), or what you mean with “normal PBR textures”.

Anyhow, it includes the “hack fix” I did for the 2.71 anisotropic energy loss at glancing edges (used in two groups), so you should take this one out of the setup (it has no inputs, only an output that is multiplied with your color/reflection to brighten up the edge) if your on 2.72 builds.

I may try to improve it in the future to only have a single gloss node to combine metallic and specular, but it kinda grew hard to follow my own approach. The setup has input for bump heightmap, and three sliders for effect onto various normals in the shadertree. Also it has translucency with tint control to replace SSS (I’m not going there).

I don’t know if Disney relies on artist to maintain energy levels (add everything with user amount), or if it tries to maintain physical relationships, but I did note that the paper mentioned “excessive values” being allowed if the user wanted it. Unless buggy, it “should” try to maintain relationships, but some values can also be excessive by entering numbers.

I normally only link to screenshots, and have users make their own and maybe learn something in the process, but this one became somewhat advanced so I’ll actually post my first blend ever. Which you can find here:
http://www.pasteall.org/blend/30190

Let me know if you find it useful at all, or help you in your own approach, or even if my attempt is laughable :slight_smile: Again, I’m trying to learn Cycles, so expect bugs.

Can you show your node setup? How is the scene lit?

I’ve updated my approach to using a single reflection call for specular and metallic, and organized it differently. Find it here:
http://www.pasteall.org/blend/30367
A slightly undesired effect of this is how the translucency is mix’ed in. I would like translucency to fade out with increasing metallic, but still have it working for non metallic specular. Currently it ignores this, and will be (along with diffuse of course) completely blocked out if specular IOR and specular amount is set too high. The same goes for sheen and clearcoat IOR & amounts, but here it is expected. Also, I’ve hooked in diffuse bumps to translucency normals as well, but I’m not sure about this one.

Any advice?

Edit: Oh, if you’re on Blender version which have updated glossy/anisotropy shaders, mute the node called “Aniso Fix”. Also, set rougness to minimum 0.0001, as the Ashikhmin-Shirley mode bugs out at less roughnesses if Specular Bumps (Medium) are modified with a bumpmap. Guessing this is a bug that will get sorted out before the official Blender 2.72 comes out.