Jump to content
axalon

Playing around with the new SSS inside the Principled Shader in Houdini 16, looking for some feedback on what I can do to improve this

Recommended Posts

Quick update: switched over to Skin Shader Core, piped in a texture node into the diffuse color and got the following result:

 

6aiS9QX.jpg

 

Which looks more accurate however I can't seem to find where to put the displacement/bump map in Skin Shader Core

Share this post


Link to post
Share on other sites

This is H16.

To add Displacements you have to build this in to the Core shaders. Core shaders only do surface shading.

If you want to add a texture displacement, use displacetyexture VOP.

To build a single non-mixing shader, you add two output VOPs one of type surface and one of type displacement after the skinshadercore and displacetyexture.

Add a Collect VOP and wire in the two outputs.

You also have to add a Properties VOP. RMB (RightMouseButton) on the properties and choose Edit Render Properties. In the dialog that pops up, in the render property list, in the bottom search field type displace.

Then find the Mantra > Render and choose all the render properties as in the snapshot image.

See the attached Houdini scene file for a working skinshadercore with displacements in /mat.

 

add_displacements_to_skinshader.jpg

skinshader_with_displace.hiplc

  • Like 3

Share this post


Link to post
Share on other sites

@old school Hi Jeff,

I remember since I tried SitoA (Arnold for SOftimage) that the skin shader had a lot more controls for the primary and secondary specular, among which an IOR.

Is this unnecessary in the shader implementation for PBR or there's a way to better control the Skin Shader Core's specular? I'm thinking the reason @axalon's tests look a bit off (seen here as well) is because of the loose ctrl over speculars. I'll contact someone over SI forums to see if I can procure a printscreen with the latest Skin shader in Arnold 5.

Share this post


Link to post
Share on other sites

I probably shouldn't wait for an Arnold shader image. Here's Mentalray's skin shader. From what I've read in the docs, Edge Factor seems to be IOR

edit: seems not waiting was a good call, 'cause upon further digging, it seems that they've removed the skin shader in Arnold 5.

skin_misss.jpg

Edited by McNistor

Share this post


Link to post
Share on other sites
1 hour ago, McNistor said:

I probably shouldn't wait for an Arnold shader image. Here's Mentalray's skin shader. From what I've read in the docs, Edge Factor seems to be IOR

edit: seems not waiting was a good call, 'cause upon further digging, it seems that they've removed the skin shader in Arnold 5.

 

Hello McNistor,

just a few thoughts:

'edge factor' in Mental Ray's fast skin (and default reflection falloff in all variances of MIA) could be a kind of very simplified Fresnel effect, precisely number 5 is exponent of dot product of shading normal and negated eye direction. In H, that could be 'normal falloff' node with mentioned exponent of 5 (or a bit more or less), plugged into 'fit range' node, where 'destination min' and 'destination max' are facing - edge weight, all that used to fade the reflection. That's simplified but gives a cleaner control over reflection weights than 'true' Fresnel. With unmodified 'fit range', it's zero at facing and one at edge.

For subsurface shaders introduced in H 16 (honestly I don't know what is included in Principled thing), I'd definitively go to 16.5. Ones in 16 are utilizing indirect rays (while in 16.5 this switched back to direct) - so, I'm afraid, everything you'll be able to get with 16.0 versions, could be a long forum thread about long render times, fireflies and such.

Unfortunately, there is no control over reflection color and face-edge weighting in H Skin shader, which makes it close-to-unusable. Why is that, I have no idea. PBR story should not be excuse for such brutal approach, IMO. IOR/Fresnel is present, but without precise facing/edge weighting control.

Regarding Mental Ray's fast skin, 'subsurface' is actually based on wild approximations, it's baked diffuse shading to vertices and blurred later, that's why there's need for three layers. Anyway, author had a great artistic talent to get a good look out of all that. One important 'artistic' element is under 'advanced' tab, it is screen blending of layers, not plain additive, which helps to avoid 'burning' with strong lighting.

That's in short. Last few months I've played a lot with this subject , basically I was able to get what I wanted. However, solution probably is not suitable for sharing all around. Anyway, it's possible to re-create a 'Master Zap's style' of shader components mixing in H. If anyone wants this, I'll be happy to help.

 

Edited by amm

Share this post


Link to post
Share on other sites

@amm Hey,

Quote

Regarding Mental Ray's fast skin, 'subsurface' is actually based on wild approximations, it's baked diffuse shading to vertices and blurred later, that's why there's need for three layers. Anyway, author had a great artistic talent to get a good look out of all that. One important 'artistic' element is under 'advanced' tab, it is screen blending of layers, not plain additive, which helps to avoid 'burning' with strong lighting.

Yeah, I know some of those settings in the mi_fast_skin are wild approximations, it is the renderer's philosophy after all, I've posted that just to help my case, that there should be a bit more control in the SkinShaderCore (SSC).

Quote

In H, that could be 'normal falloff' node with mentioned exponent of 5 (or a bit more or less), plugged into 'fit range' node, where 'destination min' and 'destination max' are facing - edge weight, all that used to fade the reflection. That's simplified but gives a cleaner control over reflection weights than 'true' Fresnel. With unmodified 'fit range', it's zero at facing and one at edge.

And the falloff plugged in where exactly in the SSC? Or were you talking about how to control that aspect in general?

Quote

For subsurface shaders introduced in H 16 (honestly I don't know what is included in Principled thing), I'd definitively go to 16.5. Ones in 16 are utilizing indirect rays (while in 16.5 this switched back to direct) - so, I'm afraid, everything you'll be able to get with 16.0 versions, could be a long forum thread about long render times, fireflies and such.

I'm on 16.5, so no issue there.

Quote

If anyone wants this, I'll be happy to help.

That would be immensely appreciated from my part. I've just went full Mantra (new year resolution) and I've got a lot to catch up, so any leg-up is welcome. I'm optimistic about this project, as I see a lot of similarities with MR with its granular approach about creating shader trees and I'm also sure that SESI won't abandon Mantra like M-ray was by Mental images and then Nvidia.

Edited by McNistor

Share this post


Link to post
Share on other sites

I'd try to post Houdini scene this weekend, based on wikihuman files. Regarding Lee Perry's head, I'd say, enough is enough :).

Share this post


Link to post
Share on other sites

So here's attempt

First of all, this is not an universal skin shader, exact replica or anything like that, I just tried to put some typical 'contemporary' methods into network. It is a mix of PBR Diffuse, PBR Single Scatter ( introduced in 16.5), and two PBR Reflections. It should showing what is possible to do, feel free to experiment with nodes inside shader network.

There's just one subsurface scattering shader in mix. Houdini PBR Single Scatter has all map-able attributes, like scattering distance or attenuation color (while in old Mental Ray's Fast Skin, blurring radius is not) - things like exaggerated back scatter around ears or variances in attenuation color, are performed by simple trick: point color is used as mask for modulation. One SSS shader should be much faster to render than three, obviously.


So at the end of the day, only typical Mental Ray's Fast Skin feature is screen blending of layers. I added switches between screen blend and plain additive.

Important parameters:

- Diffuse and SSS tint: that's 'modern' method, to multiply diffuse and SSS texture by complementary color, diffuse in light blue, SSS in orange. Overall is nearly the same as original color of texture, while complementary colors are there to get stronger diffuse - SSS difference.

- Diffuse and SSS power: actually a gamma value, 1 is original, more than 1 is exaggerated darker color.

- Diffuse and SSS Weights: for more of 'old paintings' style, feel free to raise the SSS weight.

- Screen blending, Diffuse vs SSS, Reflections vs Diffuse and SSS: feel free to disable them just to see what happens. Nice side effect of screen blend is clumping of maximum direct lighting ( inside shader I set this to 1.25), making it easier to sample by Mantra.

- Two reflections, first is wide, it acts more like additional diffuse shading. Second is sharp, intentionally disabled at edges. Bu some convention, shading model is set to Phong, as Phong does not fade the wide reflections  (contrary to  GGX) - so somehow Phong fits better, here. Any reflection parameter is a subject for tweaking, except maybe just one: in case of skin, it's always blueish tone, AFAIK that's natural effect of exaggerating the complementary reflection color in case of scattering media, something not automatically set by layered shading used in renderers like Mantra.

Regarding wikihuman files, I've reduced resolution of bitmaps to make a smaller download, also I've used only three maps: diffuse color, specular color, and main displacement.

Get files (around 30 Mb) there.

 

wikihuman.jpg

  • Thanks 1

Share this post


Link to post
Share on other sites

That looks good man. A lot better than what I've seen done with the default skin shader core.

That shader tree needs a serious study though :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×