Exploring Daz to Blender Skin Material SSS w/Diffeomorphic Nodes
A huge thank you to Thomas Larsson for putting the time into Diffeomorphic. It is such an awesome piece of software. Same to mCasual for mcjTeleblender which I've used quite a bit. I really appreciate the efforts of both of you. In that spirit I wanted to give a little back and share some of what I have learned. Hopefully others can build and expand on it and we can continue to improve.
With this post we are only looking at Subsurface Scattering (SSS) settings in Blender. I used the base G8 model and material, set up a simple 3 light setup, and used Diffeo as the bridge and initial node setup.
The only way I know how to measure SSS is with a strong spotlight behind the character's head. This shows the SSS in the ears. If someone knows a better way, please share.
As you can see, there is no SSS showing in the render of the initial setup. The ears should be glowing red from the 500w spotlight behind the head.
But SSS is turned on. The value is set to 0.50 and the subsurface radius is 0.00083 for all three channels (RGB). So why can't we see it?
SSS occurs when light enters a medium, bounces around (scatters), and then exits at a different point. Scale matters. Our character is about 1.8 meters tall. The subsurface setting of 0.5 is multiplied by each radius value to tell us what distance the light is traveling within the skin. So, 0.5 * 0.00083 is 0.000415m = 0.415mm. That is how far the light is traveling through the skin which is not far enough for us to see.
https://developer.download.nvidia.com/presentations/2007/gdc/Advanced_Skin.pdf
Changing the SSS values to 0.02 and the radius to 1.00/0.5/0.25 gives us 20mm on the red channel, 10 mm on the green channel, and 5mm on the blue channel; enough to see the light scatter through the thin parts of the ear. If you double the size of the character, the SSS value would need to double as well. The radius ratio are a combination of multiple sources I've read. There are probably more accurate values but I don't think they would have a substantial impact on the result in this case.
Now, it looks like we lost some detail and the skin got much lighter, so lets address those issues.
Switching from Christensen-Burley subsurface method to Random Walk will bring back some of the lost details. For some reason we now have to change the Subsurface scale to 0.004 as well. I'm not sure why the scale has to change, seems like a Blender bug, but maybe someone smarter than me knows and can explain. It doesn't seem right, but it works.
Why are my characters so bright!
If you load up almost any DAZ skin material in Gimp/Photoshop and check the luminance, you'll see that the values are high. They look great in DAZ because they are made for DAZ. To adjust them for Blender we need to bring that brightness back down. I've tried just reducing the brightness with nodes but so far the best result I've gotten is moving the shadow input level up and moving the highlights output level down (0 to 65 and 255 to 245 in this case) in Gimp or Photoshop. Notice how much the luminance comes down...
Here is the final node setup.
In summary, we changed the Subsurface Method to Random Walk, modifed the material levels in Gimp/PS, and changed the Subsurface Value and the three Subsurface Radius Values.
First render compared to final render (no postwork). Face, ears, and lips with new node setup, torso remained the same for comparison.
Final render with higher resolution and samples. Color adjustment in Photoshop, because, everywhere I've read so far says Filmic color management allows for more accurate rendering but washes out the colors. You can either make all the adjustments in Blender color management and the compositor, or export to do final color correction in your favorite picture editor.
I'm still not very good at color correction, it's on my list to learn, but here it is -
Please share your Blender renders and any additional insights. Thanks for reading.
Comments
@Krampus Your sss and radius are too low to get any effect that's why it doesn't work. A real size figure should work fine enough with sss around 0.9 and radius around 0.04, 0.002,0.001. That is what diffeomorphic does when you don't use the volumetric skin.
For eevee you also need to increase the shadows precision for the sss translucency to work. Again diffeo does it for you.
https://bitbucket.org/Diffeomorphic/import_daz/issues/17/sss-radius-default-setting
https://bitbucket.org/Diffeomorphic/import_daz/issues/129/better-sss-experimental