Website powered by

Updating from Arnold 4 to Arnold 5

General / 27 December 2017
Hey guys, this is my first blog post. This is something I wanted to share but did not feel was worth uploading as a new portfolio entry, since it just a small update to what I have been up to.
I have been using the ALShaders for Arnold for a couple of years now. They were considered an industry standard but with the release of Arnold 5 with Maya 2018, those shaders have become obsolete. Anders Langlands announced he will no longer update his shaders for the upcoming versions of Arnold, because the new StandardSurface that comes bundled with Arnold 5 does pretty much the same thing.

I have this on-going project I have been working on for a while now, Cammy. I had already done the shading in Arnold 4 with ALShaders. I could have finished this project with shading in its current state; but the goal of these personal projects is to learn new stuff, so I decided to redo the shading using Arnold 5 before moving forward.

Turned out it's pretty straight forward. I had textured this character using Substance Painter. So all I had to do was to re-export the maps needed for the new arnoldStandardSurface. This is as PBR as it can get, you need the Base Color, Metallic, Roughness and Normal. The only main difference is in the diffuse channel. The arnoldStandard and ALSurface required the computed DIffuse map, which could have some of its colors substracted if the shader happened to have metalness. The color was then transfered to the Specular Color map, which is not needed when you have an actual Metalness channel. So don't export the DIffuse channel like the older Arnold preset does, replace it with Base Color, or you'll end up with some black objects if they happen to be metallic, because the color information will neither be in the diffuse nor specular channel.

Then the other tricky part was the Sub-Surface Scatterring. The ALShader had a very good SSS implementation, where you could adjust the scattering depth using actual world units. The new StandardSurface is a bit confusing. It comes with an SSS color, a radius color and a scale. From what I was able to understand, you must use the scale to define the scattering depth. A scale of 1 is 1 unit. So if your Maya units are set to centimeters and you want the scattering to be 5mm deep, then  you must set the scale to 0.5. I'm not 100%, so take it with a grain of salt, but that seemed to work for me. Then, instead of setting the SSS color to red like I used to do, I plugged the original diffuse map in it, and set the radius color to red/orange instead. Why? Well, to be very honnest, that's what the official documentation on Solid Angle's website said,  so I just trusted them and indeed it seems to work well.

Finally, I needed to redo the hair too, since I was using ALHair and there is also a new hair shader replacing it. Like ALHair, you can use Melanin to tint the hair. White hair has no melanim, while black hair are full melanin. You then adjust the melanin amount to get the color you want. For blond hair, I set melanin to 0.2. I kept most of the other parameters  untouched, if you want natural looking hair, you don't really need to mess with the default settings. I just added some transparency and a bit of melanin randomness, so the hair does not look too uniform.

I have attached the older renders bellow, done with the previous setup for comparison. The difference is subtle, except for the hair which I think looks much better now. The skin looks different too, but I think it's only because I used a bit too much subsurface in the new one (most noticeable on back view, on hand and ear). So there you go. I was worried about this transition, but it turned out being pretty easy and I actually like the new results better. Overall I don't necessarily think the new shaders are better technically, but maybe easier to setup, so you can get better results without being a true shading expert.  Anyway, now I can carry on with this project.

Oh and little fun fact: I added some dog tags while I was at it because Cammy is an army girl. I reserched what should be written on them beside her name and since the formating changes from one army to another, I double checked Cammy's background story, to make sure I did not do any mistake. I thought she was American but turns out she is British ! So I made British dogtags, that's why they are rounded instead of the more commonly know rectangular shaped used in the US army. Oh, and in case you wondered, her blood type is B, because I needed that info for the dog tags and for some reason it is actually defined in Street Fighter's lore. You're welcome.