Is SSS a Ray Traced function in 3Delight yet?

SzarkSzark Posts: 10,634
edited December 1969 in The Commons

I have tried looking for the answer myself but it is so hard to find simple plain English answers.

Comments

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    Short answer : the SSS shadeop can be used three ways. The old way with or without point cloud, and the new one with raytrace

    However no official product for DS use that feature as far as I know. I guess only few people like Kettu or myself have some functional shader right now

  • millighostmillighost Posts: 261
    edited December 1969

    Szark said:
    I have tried looking for the answer myself but it is so hard to find simple plain English answers.

    I think raytraced sss is part of 3delight since version 2 or so (i.e. since always). Also this is what DazStudio uses. To use the baked sss you need to jump through some hoops
  • SzarkSzark Posts: 10,634
    edited December 1969

    Thanks so as it stands now SSS isn't raytraced in DS at default.

  • millighostmillighost Posts: 261
    edited December 1969

    Szark said:
    Thanks so as it stands now SSS isn't raytraced in DS at default.

    Err, no. In plain english:
    In DS4: SSS means raytraced subsurface scattering :-)
  • SzarkSzark Posts: 10,634
    edited December 1969

    LOL millighost. Now I am confoosed, No but in "In DS4: SSS means raytraced subsurface scattering". Oh I need to have a lie down. :)

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    Seems I also got confused by the question. As Millighost stated, SSS in DS is always ray traced. But there are two algorithm. In the old one that uses Jensen's dipole model you sample radiance to approximate the SSS. In recent 3delight versions you get the new algorithm for which you can pass a "raytrace" parameter to the shadeop to use it

  • SzarkSzark Posts: 10,634
    edited December 1969

    okdokey thanks guys for helping out. I am sure I read something recently that SSS wasn't a raytraced function and I always thought is was so hence me wanting to get my info right before passing it on in my tuts.

  • Mustakettu85Mustakettu85 Posts: 2,933
    edited March 2015

    SSS in 3Delight used to be point-cloud-only in the Softimage plugin for quite a while. That may have been the source of confusion.

    And yeah it does get confusing because of the two raytraced modes now.

    But the new "raytrace" mode is only meaningful when you run the raytrace hider. In the default one (REYES-hybrid), the shadeop always uses the "old" algo.

    In the raytracer, you can use both.

    PS I believe Jensen vs Grosjean is a different switch. I can't remember what I did first, Grosjean with the "old" algo or Jensen with the "raytrace" sampling, but I definitely started out with only one of them active =)

    Post edited by Mustakettu85 on
  • SzarkSzark Posts: 10,634
    edited December 1969

    Mustakettu85 I love it when you go into Geek mode. Ok that explains a lot and is probably to source of my confusion. Thanks for that. and thanks to all 3 of you. You 3, and a few others here, have really helped me understand things more deeply and it's frying my brain but I am getting there slowly.

    OK on a small tangent, at present DS Default and Uber Surface shaders, using the DS default 3delight render engine setting, have Reflection, Refraction and SSS as raytraced functions dependent on the Max Ray Trace Depth in the render settings. Is that correct or are there any others like Opacity?

  • Mustakettu85Mustakettu85 Posts: 2,933
    edited December 1969

    Isn't my geek mode always on? *wipes eyeglasses with handkerchief*

    And you're welcome =)

    So, max ray depth, let's see.

    First of all, I don't think it affects SSS. At least, I have never seen anything documented anywhere that would suggest SSS was anyhow dependent on ray bounce depth.

    Then, opacity. I know that it is a common belief that max trace depth will affect how many layers of opacity a "transmission" ray (raytraced shadow ray) will go through.

    BUT. I have never really tested this.

    And I actually can't see why it will be affected. Shadow rays don't really bounce. But then, in DS, "max raytrace depth" setting also caps the total RT depth which is separate from bounce depths actually...

    You know what you can do? Get several transparency-mapped planes stacked upon each other (different maps for clarity), put a non-transparent plane below them all to get shadows on, shine some light down on them with raytraced shadows, and see if the shadow this block casts ever changes if you make the max trace depth smaller than the number of these planes.

    // I'd run this myself, but I just don't have the time right now, unfortunately //

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    Szark said:

    OK on a small tangent, at present DS Default and Uber Surface shaders, using the DS default 3delight render engine setting, have Reflection, Refraction and SSS as raytraced functions dependent on the Max Ray Trace Depth in the render settings. Is that correct or are there any others like Opacity?

    I think you're correct. The SSS should be affected by diffuse to diffuse bounce. The only light I think that can produce that is UE in IDL mode. Didn't test that and I don't have a test scene to show if it effectively works that way or not

    I don't know for AOA's light. I suppose that the Advanced Ambient light is based on an occlusion() call. So no diffuse to diffuse bounce and upping the max ray depth won't add anything but longer render time. And that may be the same for other AOA lights. So thinking about that, you could force a max diffuse depth to 1 and just increase the max specular depth when needed in order to lower render times. And that may be what is done internally by AOA. But I can't be sure

  • Richard HaseltineRichard Haseltine Posts: 108,043
    edited December 1969

    Isn't my geek mode always on? *wipes eyeglasses with handkerchief*

    And you're welcome =)

    So, max ray depth, let's see.

    First of all, I don't think it affects SSS. At least, I have never seen anything documented anywhere that would suggest SSS was anyhow dependent on ray bounce depth.

    Then, opacity. I know that it is a common belief that max trace depth will affect how many layers of opacity a "transmission" ray (raytraced shadow ray) will go through.

    BUT. I have never really tested this.

    And I actually can't see why it will be affected. Shadow rays don't really bounce. But then, in DS, "max raytrace depth" setting also caps the total RT depth which is separate from bounce depths actually...

    You know what you can do? Get several transparency-mapped planes stacked upon each other (different maps for clarity), put a non-transparent plane below them all to get shadows on, shine some light down on them with raytraced shadows, and see if the shadow this block casts ever changes if you make the max trace depth smaller than the number of these planes.

    // I'd run this myself, but I just don't have the time right now, unfortunately //

    Transmapped surfaces use a "bounce" only if they have refraction or reflection - a simple surface without those will not count as a bounce.

  • SzarkSzark Posts: 10,634
    edited December 1969

    Thanks for the clarification there Richard.

  • Mustakettu85Mustakettu85 Posts: 2,933
    edited December 1969


    I think you're correct. The SSS should be affected by diffuse to diffuse bounce. The only light I think that can produce that is UE in IDL mode. Didn't test that and I don't have a test scene to show if it effectively works that way or not

    Only affected as far as the prepass diffuse calculations go = more indirect light coming from more bounces will make the surface brighter, just like more direct light from more sources.

    But will max RT depth influence actual SSS pass calculation? The way I understand the algorithms, it should not.


    So thinking about that, you could force a max diffuse depth to 1 and just increase the max specular depth when needed in order to lower render times. And that may be what is done internally by AOA. But I can't be sure

    I don't think he does it because you need to set RiAttributes for max bounce depths via rendertime scripts, and I haven't seen anything like that in his ones.

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited March 2015


    I think you're correct. The SSS should be affected by diffuse to diffuse bounce. The only light I think that can produce that is UE in IDL mode. Didn't test that and I don't have a test scene to show if it effectively works that way or not

    Only affected as far as the prepass diffuse calculations go = more indirect light coming from more bounces will make the surface brighter, just like more direct light from more sources.

    But will max RT depth influence actual SSS pass calculation? The way I understand the algorithms, it should not.

    Bad girl. You forced me to fire up DS and make a test scene. Made a box. Put a SSS Bunny inside. A spot light not directed at the bunny so it won't get direct light. An UE light in bounce light mode + photon mapping. Render with IPR at max RT 0, 1, 2. Not sure I really proved my point

    For me it seems logical as you have to compute the outgoing radiance at every point (Jensen's paper p 6) .


    So thinking about that, you could force a max diffuse depth to 1 and just increase the max specular depth when needed in order to lower render times. And that may be what is done internally by AOA. But I can't be sure

    I don't think he does it because you need to set RiAttributes for max bounce depths via rendertime scripts, and I haven't seen anything like that in his ones.

    Then I gave an eventual optimization for speed up if it works. I'd thought the scripts would be encripted, unless AOA made them with Shader Mixer

    SSSbounce2.jpg
    683 x 384 - 48K
    SSSbounce1.jpg
    683 x 384 - 50K
    SSSbounce0.jpg
    683 x 384 - 24K
    Post edited by Takeo.Kensei on
  • Mustakettu85Mustakettu85 Posts: 2,933
    edited December 1969


    Bad girl. You forced me to fire up DS and make a test scene. Made a box. Put a SSS Bunny inside. A spot light not directed at the bunny so it won't get direct light. An UE light in bounce light mode + photon mapping. Render with IPR at max RT 0, 1, 2. Not sure I really proved my point
    For me it seems logical as you have to compute the outgoing radiance at every point (Jensen's paper p 6) .


    Look... The bunny gets brighter because it gets more light in the SSS prepass - does not matter, direct or indirect. More bounces = more indirect light.

    What I mean is this: if you set max RT to 0, will the bunny compute SSS at all? (and apparently it does, unless your bunny has some diffuse, too) If you have no GI in the scene, will max RT (the total, RiOption one) anyhow influence the look of the SSS bunny or its rendertime?

    That's what we need to find out. The influence of max RT depth on SSS alone, not SSS-interacting-with-GI.



    I'd thought the scripts would be encripted, unless AOA made them with Shader Mixer

    *theatrical whisper* They are not. Just your basic ShaderBuilder-generated scripts.

Sign In or Register to comment.