Sunday 11 November 2012

OctaneRender SSS Skin Shader

Poser Skin materials are converted to an OctaneRender glossy material by the OctaneRender for Poser plugin.  This will get you 90% of the way to a realistic human skin render.  If you want to push the envelope, the you can build your own OctaneRender SSS shader, and save it (rightclick the material in the Material tab of the plugin and select Export) using the plugin for use on all your human figures.

This is the SSS shader I have been using for the Victoria 4 figures.  It should work fine on other figures.  The shader is made up of a diffuse and a glossy material, mixed together with more (0.7) diffuse than glossy.  The diffuse will provide the SSS, whilst the glossy will provide the highlights.

NOTE: The only need to do the following ONCE!  Create the shader once, then save it as a material (rightclick -> "Export Material"), then copy and paste the material it to all the skin materials of your figure and rightclick the mesh -> "Export all Materials for this Figure/Prop".  Then you can reload all the skin materials with the SSS shader at any point, and keep or replace the texturemaps that are currently assigned to the figure.




To create this shader, pick a skin material on you figure.  Then change the material type from "glossy" to a "material mix" (change the node type in the bottom box of the plugin window).  Set the "amount" to 0.7, leave "material1" as a "diffuse" material and set "material2" to "glossy".

Expanding "material1" (the diffuse material) above shows...




The important parts are:
  • diffuse is a multiply node. So copy the existing texturemap (rightclick-> copy image node), change the diffuse node from image to multiple.  Then rightclick texture1 and "paste image node"
  • texture2 - this removes some red from the image map (to compensate for the red being added by the scattering medium.  Start with red=150, green=200, blue=255, and adjust to get the right skin tones.
  • transmission - set to red=255, green=0, blue=0.  So change it from the default "floattexture" to "RGBspectrum". IMPORTANT: You can also copy and paste the image node from above into this node, which nicely stops SSS appears on dark areas of the map (like hair).  If you do this, lower (halve) the "scale" below.
  • medium - change from "absorption" to "scattering".  
  • absorption/scattering.  The ratio of these two multiplied by the scale seem to control the amount of SSS (and how far it travels).  The settings above seems to give a good starting point for human figures.  NOTE: The plugin rescales to figures to OctaneRender units, so these settings will be too high if you setting this shader up in OctaneRender Standalone.
  • scale - IMPORTANT - this number effects the amount of the SSS effort.  Small number like 2-5 will give lots of SSS, large numbers like 20-50 will give a very subtle SSS effect.  Adjust the scale to get the effect you want for the lighting in the scene.

Expanding "material2" (the glossy material) shows...


The important parts are:
  • texture1 - this is the image map for the material, and can be copies (rigthclick -> copy image node) from the diffuse material above.
  • texture2 - this is currently set to 255/255/255, but can be used to fine tune the skin tone.
  • specular - change from the default "floattexture" to "RGBspectrum".  Set the color to red=10, green=20, blue=30
  • roughness - Increasing from 0.3 will result in drier looking skin.  Reducing results in very oily skin.
  • Remember to set filmwidth to 1.0
Render Settings

IMPORTANT - you need to use the "pathtracing" kernel in order for the "scattering" node to work.  Also, I recommend reducing the scene "gamma" in the imager settings (try around 0.8).



 
Good luck!

6 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. Thanks, but could you be a bit more specific about some of these settings? For example:

    1. "texture1" you have selected the diffuse map. But what value should we select from the dropdown? I'm assuming it is "Image"?

    2. "texture2" has the value of "Color" selected, which is also not a dropdown value. I'm assuming it is "RGBspectrum", since that is the one that is loaded by default? These names should be more consistent, in my opinion, so as not to confuse.

    3. "texture2" you say is set to 255/255/255 by default. I see it is set to 229/229/229 by default. Is that the better value?

    ReplyDelete
  3. Hi Epoch

    1) Yes - image. Use floatimage for bump maps, image for texturemaps.
    2) Yes, sorry this was not clear above - RGBspectrum if the right one.
    3) I recommend 255/255/255. That node is in there because with Miki4 I needed to tweak the color tones a little, so used that node. With V4, depending on the maps, that may not be necessary

    ReplyDelete
  4. If you use the above shader, you get too much RED SSS in dark areas (like if black hair is painted on the head map). To get around this, plug the diffuse texturemap into the Transmission node. This will significantly reduce the SSS effect, so you can reduce the "scattering->scale" to say 5 to compensate.

    ReplyDelete
  5. Ive been playing around with the SSS and if I plug the diffuse texture map into the transmission node it seems like theres almost no SSS, I might be doing it all wrong but it seems that by making the RED less red it works better

    ReplyDelete
  6. I'm finding the same thing Herman - you need to substantially reduce the scale a lot to get the SSS effect when putting the texturemap into the transmission node.

    ReplyDelete