Metalness & Specular Workflows

Because Rombo shading nodes are organized by lobes (diffuse, reflect, sss etc.) we need to choose the right one for the work we gonna do. When we have a metalness map for example we have 3 nodes we can choose from : ReflectGeneralized, ReflectMultiScatter and ReflectFlakes. 

Being 'reflect' nodes the initial setup is of pure reflections. We need to set up a couple of parameters before having a node ready for the metalness workflow. When we first drop ie. a ReflectGeneralized to an object, this is the default params and initial appearance we'll have.

It looks like metal because the Fresnel is set to Core/Edge while core and edge params are almost at top white. The diffuse is disabled with weight set to 0. Now, let's tweak it to be metalness ready. We set the Fresnel to IOR/K and diffuse weight to 1. We'll end up having a diffuse lambert base with a specular dieletric layer on top. And we're ready to use it as we'd do with the Standard Material. 

At this point we can simply plug in our PBR maps to finish shading our penguin. We don't need anything else than the orignal maps as internally everything is already calibrated to deal with a standard PBR workflow. Eventually we can use reflection slope and microfacet normal mapping as added features.

And we've finished with the metalness workflow. However when we set Fresnel to IOR/K we have added ways to deal with Fresnel reflectance and the specular workflow. Initially we have only the first slot of the IOR vector set to 1.5. This works exactly as having a single IOR param like we find on Standard Material.

IOR and K combined give the full complex IOR. If we have real values for our complex IOR like those we can find on we can input them directly here. If we just input the first IOR and K we have a constant complex IOR over all three channels but we can input different IOR/K to have different values at different wavelenghts (remember a possible combination of wavelengths is 630 nm for red, 532 nm for green, and 465 nm for blue light).

Above for example we looked up complex IOR values for aluminum and we plug them into the IOR/K slots. This would be the same if we were using Core/Edge but with colors instead. We can see some color combinations for aluminum here on Arnold docs page ( (We can forget about this because when we have a metalness map the other param is always left at its default but where Standard material has its core color as diffuse map and its edge color as specular color (as reported in the above link) with Rombo we have the same except that the edge color is still the edge color slot while the core is the diffuse one when metalness is engaged).

With Rombo full Fresnel implementation we are able to easily deal with both metalness and specular workflows where we can easily use the FresnelByColor implementation or the complexIOR one that comes with numerical values.

However if we're not experimenting with IORs or we don't have explicit workflows to put in practice, the usual metalness workflow works well and straightforward even with way more complex stuff like the rifle below.


Keywords :

metalness, specular, pbr, ior, complexior, arnold, arnoldrender, arnoldrenderer, shader, material, reflect, reflection, microfacet, arnold shaders, arnold download, arnold materials, arnold renderer materials


Leave a Reply