Page 1 of 2 12 LastLast
Results 1 to 15 of 24

Thread: Random SSS Node

  1. #1
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151

    Random SSS Node

    It appears that the SSS node has a true non-deterministic random walk component built-in The settings in the material between the attached two renders has not changed a bit, but the outcome is slightly different. It shouldn't be this way. Is there anyone with the same observations when playing with SSS Node or Principled BSDF Node?


    Click image for larger version. 

Name:	m1.png 
Views:	89 
Size:	545.6 KB 
ID:	148719Click image for larger version. 

Name:	m2.png 
Views:	86 
Size:	545.1 KB 
ID:	148720

  2. #2
    TrueArt Support
    Join Date
    Feb 2003
    Location
    Poland
    Posts
    8,263
    Try rendering image sequence without changing anything.
    Do rendered frames differ?
    If yes, send bug report..

  3. #3
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    Sensei, thank you for the tip.

    I have increased the SSS samples as well as the others (Lights/GI..) and decreased the camera samples and the result is that deterministic behavior is back. So, false alarm after all.

    Click image for larger version. 

Name:	m3.png 
Views:	40 
Size:	434.2 KB 
ID:	148722Click image for larger version. 

Name:	m4.png 
Views:	44 
Size:	433.7 KB 
ID:	148723

  4. #4
    TrueArt Support
    Join Date
    Feb 2003
    Location
    Poland
    Posts
    8,263
    Actually your renders flickers a bit. Just tiny bit.

    To check it perfectly put them in Photoshop in two layers, and use Subtract/Difference mode. And eventually amplify result. It will reveal differences. Perfect copies will result in completely black image, with 0,0,0 colors.
    Last edited by Sensei; 09-18-2020 at 12:48 PM.

  5. #5
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    Yes, I know that. My point was, the higher the SSS samples the less the distinction.

  6. #6
    TrueArt Support
    Join Date
    Feb 2003
    Location
    Poland
    Posts
    8,263
    Quote Originally Posted by next_n00b View Post
    Yes, I know that. My point was, the higher the SSS samples the less the distinction.
    It should not flicker regardless of the number of samples..
    If you press f9 twice, twice get the same result.
    If not, it should be reported as a bug to LW devs.

  7. #7
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    Well, that is what I thought in the first place, but this is true only when the rays always hit the same spot on the model in the same way. But is this really the case? If you have inadequate SSS samples the results you get can vary?

  8. #8
    Electron wrangler jwiede's Avatar
    Join Date
    Aug 2007
    Location
    San Jose, CA
    Posts
    7,114
    Quote Originally Posted by next_n00b View Post
    Well, that is what I thought in the first place, but this is true only when the rays always hit the same spot on the model in the same way. But is this really the case? If you have inadequate SSS samples the results you get can vary?
    It really shouldn't matter, the results should remain deterministic otherwise anim, farms, multi-pass still, etc. will all have problems.

    Most likely, as you surmised, they invoked a pRNG in the shader calcs, but forgot to provide users a seed parameter (the usual answer for this pRNG determinism issue).
    John W.
    LW2015.3UB/2019.1.5 on MacPro(12C/24T/10.13.6),64GB RAM, NV 980ti

  9. #9
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    I have got some troubles with my second cpu on my workstation, so I haven’t been able to test for some time.

    So I have made some additional tests on that matter and so far it seems that this “SSS” issue is actually from Irradiance Cache as my primary and only GI engine. It was enabled by mistake, I always thought I have the Brute Force selected.

    So even with Irradiance Cache interpolation accuracy set at 100% I still get F9 renders variations. I wonder if this behaviour is by design?

    It is not the SSS node, the same behaviour is with Sigma1, Sigma2… so my current conclusion is that this comes from Irradiance Cache.

  10. #10
    Electron wrangler jwiede's Avatar
    Join Date
    Aug 2007
    Location
    San Jose, CA
    Posts
    7,114
    Quote Originally Posted by next_n00b View Post
    It is not the SSS node, the same behaviour is with Sigma1, Sigma2… so my current conclusion is that this comes from Irradiance Cache.
    Well, I'm not sure what you're seeing, but I'm just about done documenting what appears to be a fairly substantial issue in SSS node/shader, just as I described above. There does appear to be a legit pRNG-based lack of shader determinism due to lack of explicit seed field. I'll post more once done and bug is filed.
    John W.
    LW2015.3UB/2019.1.5 on MacPro(12C/24T/10.13.6),64GB RAM, NV 980ti

  11. #11
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    I can hardly wait for your conclusions and I will retest them on my scene.

  12. #12
    Electron wrangler jwiede's Avatar
    Join Date
    Aug 2007
    Location
    San Jose, CA
    Posts
    7,114
    Okay, since my 2020.0.2 trial ended, I cannot provide a scene for this, but can show the relevant details. The attached archive contains all the relevant settings and overall setup, as well as the renders demonstrating the problem.

    The following three pictures highlight the differences in result in SSS shader output across three frames:

    Click image for larger version. 

Name:	SSS_Direct_000_001_diff.png 
Views:	16 
Size:	158.3 KB 
ID:	148742
    SSS_Direct difference between frame 0 and 1
    Click image for larger version. 

Name:	SSS_Direct_000_002_diff.png 
Views:	14 
Size:	173.9 KB 
ID:	148743
    SSS_Direct difference between frame 0 and 2
    Click image for larger version. 

Name:	SSS_Direct_000_003_diff.png 
Views:	13 
Size:	173.6 KB 
ID:	148744
    SSS_Direct difference between frame 0 and 3

    These comparison images highlight the problem (white pixels indicate differences): Lacking the (necessary) ability to force the same pRNG seed per frame, the "random walk" SSS shader produces slightly different results for every single frame, which will cause flickering in animation, as well as compromise farm renders, composition, etc. In a proper, "stable" shader, lacking movement or deformation, the result should remain stable between frames (iow, zero difference, no white pixels).

    This problem has come up repeatedly when pRNG random values were used in shading previously, and a solution was to add a per-frame "seed" field to ensure deterministic pRNG output for shading in each frame so as to produce a "stable" shading solution between frames. The SSS shader appears to have this same pRNG-driven instability, and therefore needs a similar per-frame pRNG seed field for in animation, render farm, and composition use cases.

    If there is already a provision to "stabilize" the shader result, I saw no such UI provision in the node's inputs or params. That these frames were rendered as part of an animation suggests LW itself isn't doing anything special behind the scenes to stabilize the shader in anims (nor could it easily detect farm or composition situations, thus still a problem). The actual renders that resulted clearly have frame-to-frame differences.

    If such a mechanism exists, NT/V need to inform customers how to make use of it, but lacking that, SSS currently does not produce inter-frame-stable shading results.

    SSS_bug_info.zip
    Last edited by jwiede; 09-23-2020 at 05:30 PM.
    John W.
    LW2015.3UB/2019.1.5 on MacPro(12C/24T/10.13.6),64GB RAM, NV 980ti

  13. #13
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    I can easily confirm your observations. I haven't even bother rendering frame1 and frame2. I have enough issues rendering the same frame I still think that my issue is from Irradiance Cache witch I will explain later in a separate post. Here is my render with your settings. First is frame1, frame2 and the difference between them.

    Click image for larger version. 

Name:	1.jpg 
Views:	12 
Size:	713.3 KB 
ID:	148748Click image for larger version. 

Name:	2.jpg 
Views:	15 
Size:	713.7 KB 
ID:	148749Click image for larger version. 

Name:	3.jpg 
Views:	14 
Size:	647.7 KB 
ID:	148750

  14. #14
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    Here is another set; First frame1 and frame2 from Sigma, and then frames from Conductor. You can see the difference with a naked eye. I think this is coming from the render engine.


    Click image for larger version. 

Name:	sig1.jpg 
Views:	16 
Size:	815.0 KB 
ID:	148751Click image for larger version. 

Name:	sig2.jpg 
Views:	17 
Size:	815.3 KB 
ID:	148752Click image for larger version. 

Name:	cond1.jpg 
Views:	18 
Size:	443.6 KB 
ID:	148753Click image for larger version. 

Name:	cond2.jpg 
Views:	16 
Size:	443.7 KB 
ID:	148754

  15. #15
    Registered User
    Join Date
    Aug 2017
    Location
    Slo
    Posts
    151
    Now I am lost. I have tried the same thing in 2018 version and the behavior is the same. Renders are different from frame to frame with Sigma node or Principled BSDF with Subsurface enabled. What part I don't understand I ask myself?

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •