Branched Path Tracing OFF issue



  • I started setting up and discussing this scene that I'm working on in the following thread:

    https://forum.smithmicro.com/topic/202/post-your-superfly-renders/392

    I was getting fireflies in the scene when rendering though, which I did some testing in that regard in this thread:

    https://forum.smithmicro.com/topic/754/fireflies-in-render-more-details/24

    Between the two threads, I believe I have found an error in the SuperFly rendering engine in Poser Pro 11. I am running Windows 10, all updates installed, and the latest version of Poser Pro 11.

    I will set the scene up again though to keep this all in one thread:

    The setup is a single semicircle that is not quite 360 degrees around the building with a background image displaying on the semicircle. You can see a single open end in the semicricle toward the top of the first picture. You will also note that it is a semicircle, and not a hemisphere. So the environment outside the building is not completely enclosed.

    There are seven area lights in the ceiling set to 60% and pointing straight down. Then six more area lights pointing straight up along the outside walls located in the various wall lamp assemblies - they are also set to 60%. There is a single infinite light pointing at the building to represent the sun.

    0_1476037861696_Pool Setup 001.jpg



  • Here is the problem that I am having. If I render this scene with Branched Path Tracing turned on, then it renders fine. However, there are obvious errors if I turn Branched Path Tracing off.

    Moving forward, I will refer to Branched Path Tracing as simply BPT.

    Here is the properly rendered scene:

    0_1476038127144_BPT 1.jpg

    And the corresponding render settings:

    0_1476038030949_BPT Settings 1.jpg

    I have labelled the areas to which you need to pay attention:

    1. The light on the wall
    2. Reflections from the lights in the water
    3. Reflections from the ceiling lights in the glass
    4. Reflections from the wall lights in the glass


  • If you turn BPT off, then there are several issues:

    1. The light on the wall render significantly differently.
    2. The reflections in the water are missing.
    3. The ceiling light reflections are missing in the glass.
    4. The wall light reflections are missing in the glass.
    5. In addition, the whole scene is dimmer / less bright.

    0_1476038381057_BPT 2.jpg

    Render Settings:

    0_1476038395468_BPT Settings 2.jpg



  • I am fairly certain this happens because the Sample all lights direct and indirect settings become greyed out, and I'm assuming turned off, when you turn BPT off.

    To try to verify this, I turned BPT back on but turned off Sample all lights direct.

    1. Sure enough, the light on the wall renders similar to when BPT is turned off.
    2. However the water reflections properly show up.
    3. So do the reflections in the glass.
    4. Same as # 3.

    0_1476038657702_BPT 3.jpg

    Render Settings:

    0_1476038668862_BPT Settings 3.jpg



  • At this point, I assumed that the reflections were showing up correctly because Sample all lights indirect was still on. So I rendered the scene again with that setting turned off as well.

    However, I was incorrect. This scene rendered exactly the same as the previous one:

    1. Wall light is wrong
      2, 3, and 4 Reflections are correct.

    0_1476038794281_BPT 4.jpg

    Render Settings:

    0_1476038817201_BPT Settings 4.jpg



  • So this leaves me to wonder what is happening when you turn BPT off? I would have expected the render results to be identical whether BPT is turned on or turned off - only the render times should be different.

    If anybody else can run your own tests and confirm these findings, then I would appreciate it. :)



  • @mr_phoenyxx Yes, I have the same results. I was testing your idea from the other thread to see if I was wrong and when I turned BPT back on, specular highlights appeared on my model that were not showing with BPT off.



  • @ghostship Thanks! :D

    I wanted at least one person to confirm this, because maybe it was a problem with this scene, before I submit it to SM as an error.



  • @mr_phoenyxx in the first webinar they talk about Sample all lights and IIRC when this is unchecked Superfly only calculates the brightest light in the scene. I'm not 100% positive and I'd still like some input from the guys in the Poser dev team to clear up my/our confusion if this is what it is.



  • @ghostship Doesn't that kind of defeat the purpose of a PBR though? That seems really weird to me.



  • @ghostship Did you mean this webinar?

    About 14 minutes in is this part;

    0_1476043159315_webinar.JPG

    Quotes from that section:

    "They control whether or not for a given ray it considers all lights in the scene or only one at a time"

    "This becomes very important if you have hundreds of lights in your scene because suddenly you would have to trace a hundred (or if it was turned on) you would have to trace hundreds of shadow rays because every single light source would get a shadow ray"

    "Whereas if that is turned off only one light would be picked at random. That light would be calculated for this given sample. The other ones would be ignored"

    "If you are already running a very high number of pixel samples then it may be beneficial to turn off the option because you will get enough rays to even out over all lights anyway"



  • @mr_phoenyxx Yes that was the video and what I was talking about.



  • @ghostship Well I'm not going to report it as a bug, because that looks like it is working as intended. This does not seem like the correct way to do this though. Kind of like you said in the other thread, I would have assumed that turning BPT off would turn the two Sample all settings on.

    So I guess the way you do that is to turn on BTP, set everything to 1, and then crank up the Pixel Samples. Based on this I can see no reason you would ever turn off BPT as your render will actually turn out incorrectly.

    But at least I think we know how it works now. :)