Forum: Poser - OFFICIAL


Subject: New skin tutorial

indigone opened this issue on Mar 17, 2009 ยท 93 posts


bagginsbill posted Thu, 19 March 2009 at 1:11 AM

Notice also that the colors in your shader have gone cold. That's because of how you did the SSS. You aligned the SSS with a specular node, which means it only happens mostly in line with the half-angle between the observer vector and the light vector. And also, you used a fastscatter node, which as face_off and I have written many times, is utterly useless.

Whereas, my shader is nice and warm in the front like it's supposed to be.

This is actually a combination of multiple effects. We talk about front-side SSS and back-side SSS.

Back-side SSS is when light passes straight through a translucent material, like the thin part of an ear. When lit from behind the ear seems to glow red. This is what fastscatter is supposed to do, but it does a terrible job. There's really no good way to do back-side SSS in Poser. It should only happen on thin parts, which means mostly the ears. For most renders, this is a detail that can easily be ignored without ruining the render.

Front-side SSS is when the light goes in, bounces around, and comes back out near the area it went in. The greatest part of this should happen on the shadow side of the "terminator". The terminator is the transition from direct illumination to indirect illumination. Face_off built his shaders to do this by incorporating knowledge of the position of your dominant light source. From that and the actual normals of the surface, he calculated where the surface was slightly pointing away from the light, and he added red there. This is very effective, but a pain in the ass, because you have to enter the coordinates or vector to your light every time you move the main light.

He wrote scripts to do this, and those are the "real skin xyz" products. They all rely on the user clicking a button to re-calculate where the front-side SSS should happen.

I never liked that because it's a pain in the ass to keep running the script every time you move a light and that doesn't work for animation at all.

So for years I've been trying to find workarounds. At one time I simply ran a Diffuse node into a Color_Ramp and where the Diffuse was low, it generated some extra red. Face_off liked that idea, and built it into the Daz V4 and M4 shaders. But that technique has a bunch of problems. One, it doesn't behave too great with certain IBL situations. Two, in very low light, it makes the figure seem to glow, because getting the balancing act between light and shadow cannot quite be based on an absolute value coming out of the Diffuse node. It would really require that we know more about the light intensity and direction, information we don't get in a Poser shader.

Another technique i tried was to simply add red wherever there was little or no specular. This had other problems.

My most recent trick is all a subjective hack, but it seems to work pretty well. It involves a combination of measuring the measuring the diffuse value, inverting that, running it through a little more wave-shaping math, and then multiplying that back with the diffuse value. People seem to like it. Also, this technique has very easily adjustable characteristics, so when it isn't quite right, the user can make a change to a single parameter and make it work.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)