Omni Surface Shader Test

24

Comments

  • nonesuch00nonesuch00 Posts: 18,169

    dbmelvin1993 said:

    nonesuch00 said:

    Strange. I thought it was for strand based hair.

    Omni Shaders are not just for hair, those are Omniverse shaders by Nvidia themselfs, and they got quite a few, Omnihair is just one of them, you also got Omnisurface (The Iray Uber equivalant), and a few others.

    Daz Simply implemented both Omnihair and Omnisurface. (But are not doing anything with Omnisurface) 

    thanks for the explanation

  • emaneman Posts: 75

    @latexluv13_65ebcf7300 When you apply that shader all previous settings and textures are cleared, have you tried to load the textures again? Check also the settings (diffuse weight, specular weight and so on).

  • Tried it again. Cannot figure out where to put maps in this shader. I am using the Omnisurface Final from 3dshards. I may have to just wait until someone releases a character set up with the Omnishader.

  • emaneman Posts: 75

    It's just like any other shader, you just have to load the textures. Probably Subsurface is off by default, just enable it, it will then show the parameters. You can use the diffuse texture for subsurface color, the radius doesn't need a texture. Don't forget to set also the subsurface weight (by default is zero).

  • I really don't know what I'm doing wrong. Here is a screenshot.

     

     

    OmniShader Fail.JPG
    1918 x 1038 - 216K
  • lilweeplilweep Posts: 2,530

    From that screenshot, for all we know you have a giant black map on the other channels... Anyway, did you install the shaders?

    the omni mdl files should be in your directory somewhere like Program Files\DAZ 3D\DazStudio4\shaders\iray\daz_3d  

    They were added at same time as omnihair i believe

    They might be somewhere else depending how you install.

     

  • emaneman Posts: 75

    I think I know what it is... render mode must be set to Photoreal. Looks like OmniSurface doesn't work in Interactive mode.

  • No, I was in the wrong version of Dazstudio. Needed to be under DS 4.23. But I couldn't get how to set up the diffuse correctly and then my laptop locked up. I'm afraid my laptop is probably not up to handling this version of Dazstudio. Still would like to see a full shader tree of this shader. Eventually I'll be able to get a newer machine.

  • emaneman Posts: 75

    The shader works on DS 4.22 and your set up is correct, you don't need the diffuse channel if you are using subsurface. I tried rendering in interactive mode and when Subsurface is enabled it just doesn't render correctly (I didn't get a black render though).

  • I will let you people know though that this was a little project i did. so not everything will be perfect.

    However, funnily enough i've seen somebody mention that Skin would not be 70 or even 80 percent translucent, which is on the contrary, very much so. Skin is about 94-95 percent translucent and especially when you try to model this as realisticly as possible. The only problem? well, this is where you have to start using a map in the Subsurface weight, the disadvantage of not using this, is the typical red nose, and jelly monster.

     

    While it's true that Skin is 94-95 Percent Translucent, the only real redness from scattering you should be able to observe is in the ears, fingers (and perhaps hands) and feet.

     

    I've since took all the acquired skills and methods into a final ultimate shader, which i proudly call "Master Skin and Hair" (unreleased as of now), and also learned what needs to be done in order for a custom shader to copy over maps from Iray uber and PBR Skin, so the process is easier and saves time.

     

    Master Skin just isn't a simple Skin shader, it's a massive Skin Shader which i based from the design of the Blender shader "Global Skin", and the Master Hair Shader is based on the same principled like you'd have with the Omni Hair Shader, but is a shader meant for non-strand based hair that uses a Melanin slider, and more.

    Below is a Screenshot of this shader, and the Shaders themself. (Render was with an early version of the hair shader)

     

     

    image.png
    525 x 855 - 747K
    image (1).png
    423 x 812 - 51K
    image_1.png
    426 x 845 - 49K
    image (2).png
    1363 x 834 - 84K
    image (3).png
    1208 x 809 - 375K
  • emaneman Posts: 75

    The redness appears wherever the light passes through, you don't see it on the nose because the light is blocked by the bones. Using the weight channel to simulate this effect will give uncorrect results because it will just remove the sss effect on certain areas and if you don't use the diffuse channel those areas will just look darker, also with strong illumination the light will still pass through. The best way to simulate the bones under the skin is by creating a specific map. This map should be used on the scale or radius channel and will attenuate, but not remove, the sss effect.

    Screenshot 2024-10-31 143329 copy.jpg
    1667 x 661 - 311K
    Screenshot 2024-10-31 151844 copy.jpg
    1102 x 615 - 229K
  • Works exactly the same in my Master Shader, but instead goes to the Subsurface parameter.

    However, in mine, you will not see anything else but the ears in this situation. Putting it in the Subsurface channel doesn't however cause the SSS to go extinct, but to be controlled so that not the entire skin has a redness going over it, and to keep the Translucency of the skin thick enough so that it doesn't appear too thin.

    image_2024-11-01_185532273.png
    1912 x 976 - 474K
    image_2024-11-01_185640048.png
    1007 x 895 - 785K
  • emaneman Posts: 75

    @dbmelvin1993 Did you get the emission to work with the hair shader? I tried everything but I can't get it to work at all... the only way is to use another material entirely.

  • Tried that too, but didn't get it to work either i believe. (i left it out in my version too for that reason)

    Although, i'm not 100 percent sure about that.

  • emaneman Posts: 75

    OK, thanks. I left it out too for now...

  • suffo85suffo85 Posts: 182

    I got curious and decided to take a look.

    Top to bottom:

    • Omnisurface - 10 minutes to render
    • PBRskin - 2 minutes to render
    • Uber - 2 minutes to render

    Mira 9, all default settings, no makeups.  Omnisurface had no defaults so I manually applied some SSS and tinkered a bit.  Results kinda surprised me.

     

     

  • emaneman Posts: 75

    Is Transmission enabled? If you use Subsurface you should disable it. Also looks like there is no specular... Anyway yes, it take longer to render... but I thought it was because I don't have Nvidia card :(

  • suffo85suffo85 Posts: 182

    eman said:

    Is Transmission enabled? If you use Subsurface you should disable it. Also looks like there is no specular... Anyway yes, it take longer to render... but I thought it was because I don't have Nvidia card :(

    Yeah I had it enabled, at very low values.  SSS was also at pretty low values as well, and no specular.  Was trying to get a fair baseline since Uber didn't really have anything on it either.  PBRskin gets to cheat since it's Mira's preset... despite that I still thought Omnisurface has a more realistic look to it.  The render penalty kills it for me though.  Maybe when the RTX 5000 series comes out it might be a different story. :)

  • As a suggestion, Do not use transmission while Subsurface is active, if both of those are enabled at the same time, it will very much slow down the rendering, and potentially crash Daz.

    Transmission is like Refraction in Iray Uber, but it has it's very own SSS settings that colide with the Subsurface ones.

  • I did some quick tests of OmnisurfaceBase using dbmelvin1993's preset.

    It's hard to do a fair side-by-side comparison of different skin shaders, so wouldnt read too much into these results. (I will probably need to adjust my SSS masks for Omnisurface, as I merely tweaked a thickness map from Substance Painter without putting much thought into it).

    OmnisurfacevsOthers.jpg
    2049 x 1706 - 245K
  • emaneman Posts: 75

    Have you used the thickness map on the scale? I used a map only on the head to remove the jelly nose effect, the body looks ok even without maps...

    Yes, it is hard to do a comparision, they all look good to me (except uber!). Maybe the first one, but with a little less thickness (the finger looks better on the second pic on my opinion).

  • While i don't see too much differences, there is one thing i do notice, the overall skin tone on Omni has a closer human like tone, where as both Uber and PBR Skin have a paler appearance.

    Though, i would not use thickness maps, unless they are specificly made well, but those that substance painter bakes are often not really good.

    Iray uber however in that scenario though seems to have very little to no SSS at all. 

  • UncannyValetUncannyValet Posts: 218
    edited November 18

    eman said:

    Have you used the thickness map on the scale? I used a map only on the head to remove the jelly nose effect, the body looks ok even without maps...

    Yes, it is hard to do a comparision, they all look good to me (except uber!). Maybe the first one, but with a little less thickness (the finger looks better on the second pic on my opinion).

    I have just used the map on subsurface radius parameter as i was too lazy to link a texture map brick to the scale parameter in shader mixer.  I agree fingers and toes are looking better without maps, so I have removed. 

    Edited: After some more testing, are SSS masks really necessary? I find that when calibrating SSS to get the amount of SSS i would expect for ear and hands (Scale: approx 0.05, forward scattering: approx 0.5-0.6) then the nose does not have SSS issues and does not need a map. 

    Post edited by UncannyValet on
  • emaneman Posts: 75

    I think if you use a small scale you don't need thickness maps (definitely do not use those create with substance painter, as dbmelvin1993 suggested). I was decreasing the scale too to avoid the red nose, but I wanted more red on the ears so I made those maps. The tip of the nose is cartilage so the map should consider that (in my map is almost white). The scale is a multiplier of the radius, so you can use the maps wherever you prefer. I prefer the scale because is a single float value (should use less memory, but I'm not sure!).

    I read somewhere skin have a forward scattering (between 7 and 9) but I got realistic results even with anisotropy set to zero, so I'm not really sure about that. Negative values seem to remove the front scattering though, making the skin looks more like plastic.

    If you are happy with those settings use it, as I said I'm still not sure what the best settings is to create realistic skin. I also noticed forward scattering take a little longer to render, so one may consider that too.

  • UncannyValetUncannyValet Posts: 218
    edited November 3

    eman said:

    I think if you use a small scale you don't need thickness maps (definitely do not use those create with substance painter, as dbmelvin1993 suggested). I was decreasing the scale too to avoid the red nose, but I wanted more red on the ears so I made those maps. The tip of the nose is cartilage so the map should consider that (in my map is almost white). The scale is a multiplier of the radius, so you can use the maps wherever you prefer. I prefer the scale because is a single float value (should use less memory, but I'm not sure!).

    I read somewhere skin have a forward scattering (between 7 and 9) but I got realistic results even with anisotropy set to zero, so I'm not really sure about that. Negative values seem to remove the front scattering though, making the skin looks more like plastic.

    If you are happy with those settings use it, as I said I'm still not sure what the best settings is to create realistic skin. I also noticed forward scattering take a little longer to render, so one may consider that too.

    I guess anisotropy of 0 will scatter in all directions, so you will still see some forward scattering at 0.
    I tried looking in literature for skin anisotropy settings (in accordance with the Henyey-Greenstein phase function referenced in the documentation) and could not find much. I did see one paper had set the anisotropy parameter to 0.85. This paper seems to be referenced to quite frequently when searching around this topic. This one also seems to suggest similar values.

    Chatgpt had suggested 0.5 but now i realise that it was probably hallucinating.

    Post edited by UncannyValet on
  • UncannyValet said:

    eman said:

    I think if you use a small scale you don't need thickness maps (definitely do not use those create with substance painter, as dbmelvin1993 suggested). I was decreasing the scale too to avoid the red nose, but I wanted more red on the ears so I made those maps. The tip of the nose is cartilage so the map should consider that (in my map is almost white). The scale is a multiplier of the radius, so you can use the maps wherever you prefer. I prefer the scale because is a single float value (should use less memory, but I'm not sure!).

    I read somewhere skin have a forward scattering (between 7 and 9) but I got realistic results even with anisotropy set to zero, so I'm not really sure about that. Negative values seem to remove the front scattering though, making the skin looks more like plastic.

    If you are happy with those settings use it, as I said I'm still not sure what the best settings is to create realistic skin. I also noticed forward scattering take a little longer to render, so one may consider that too.

    I guess anisotropy of 0 will scatter in all directions, so you will still see some forward scattering at 0.
    I tried looking in literature for skin anisotropy settings (in accordance with the Henyey-Greenstein phase function referenced in the documentation) and could not find much. I did see one paper had set the anisotropy parameter to 0.85. This paper seems to be referenced to quite frequently when searching around this topic. This one also seems to suggest similar values.

    Chatgpt had suggested 0.5 but now i realise that it was probably hallucinating.

    That's where you also need the map for, Iray uber and PBR Skin have the anisotropy of scattering set to -0.70. 0 Means Isotropic scattering, which is neither forwards or backwards. Without using a SSS Weight, trying to set the Anisotropy too much forwards (on the mentioned values from those document), you will get a overly strongly visible forwards scattering effect, and trying to push the translucency past 90 (Skin is 94-95 percent translucent) in combination with that anisotropy value will demonstrate how majorly wrong looking it can go, and you will litterly have a much too strong translucent skin.

    The Map in SSS Weight Prevents that from happening, allowing that you can also safely push to those values.

  • and oh, that's also why i don't tend to use PBR Skin nor Iray Uber, because doing what i mentioned above will also result in weird and incorrect results on those two shaders. PBR Skin with a translucency Weight map and those high values, has a high tendency to show the areas you have on those maps in full effect, creating a weird blend/Mix, Iray Uber is as far as i'm aware also not capable of doing this.

    Omnisurface is, and my Master Skin Shader also is capable of that, provided those maps are present. The Above i've said in the previous reply applies for all shaders, even omni surface, but without the SSS Weight, a too high subsurface and too high forwards scattering value creates a too highly translucent effect, and a way too strong redness.

  • This is as a very last example, but the two example show what happens if the Subsurface (or translucency weight) is set to .94, and a Anisotropy Angle/Direction of .9.

    It becomes a bloody mess, whereas with map, it doesn't happen.

    image_2024-11-03_045328824.png
    1597 x 909 - 848K
    Screenshot 2024-11-03 045140.png
    1679 x 911 - 1014K
  • emaneman Posts: 75

    @UncannyValet I noticed that anisotropy high values makes the skin looks more hydrated/younger, so I think these settings may vary by age, skin type and so on. Maybe ChatGPT is not wrong after all, 0.5 is a good compromise :) AI:1 Humans:0 LOL!

    @dbmelvin1993 I don't think the translucency coefficent is given by the weight in this shader. This shader works differently than uber or pbrskin. I think the translucency is given by a combination of factors like radius/scale anisotropy and weight. For example if you set the anisotropy to 1 with a scale of 1 you will get a super translucent skin, even with a low weight value, but if you set the anisotropy to -1 with a scale of 0.01 the translucency is basically gone, even with a subsurface weight set to 1.
    The second picture looks obviously better, but looks also like there is very few front scattering.
    Is your shader still based on OmniSurfaceBase? Because I see very different parameters there!

    My settings for the skin so far: Diffuse Weight = 0.0/0.3, Subsurface Weight = 0.5/0.7, Subsurface Color = Same as diffuse but darker, more saturated and more red/orange, Subsurface Radius = 1.0, 0.35, 0.2, Scale = 0.05/0.09 (but these settings may change depending on the size of the model), Anisotropy = 0.5/0.8

  • UncannyValetUncannyValet Posts: 218
    edited November 3

    Should I expect to see a transparent torso or is something seriously wrong?

    jfjfj.JPG
    1227 x 793 - 211K
    Post edited by UncannyValet on
Sign In or Register to comment.