1. Join Date
    Jul 2007
    Posts
    532
    #1

    New feature: Bidirectional Path Tracing

    Introducing new engine - Bidirectional Path Tracing (BDPT)

    Simplified technical introduction...
    BDPT works by tracing paths from both emitters and camera. Generated nodes on paths are joined in every possible way then. Meaning all points of geometry intersection are connected and their contribution to pixel energy is evaluated. In efficiency it can give both speed up or slow down comapared to Path Tracing (PT) which traces rays only from camera. Firstly cpu cost is much higher on BDPT since all connections have to be checked for shadow by other geometry. On the other hand in some situations generation of path can be a lot easier by doing it from light side. Finally number of samples per pixel is drastically decreased but each sample gives a lot better convergence to correct value compared to PT.

    BDPT can give better results than PT in situations where it is hard to reach emitter from camera, like bulb hidden under lampshade. It is also hard to reach emitter on path that is a caustic. Connecting all the nodes on emitter and light paths can give better result in interior light evaluation. It has to be pointed out that BDPT is not a cure for all rendering problems. Situations where PT has no problems can't be evaluated faster on BDPT.

    Here is list of situations where PT (old engine) will generally perform better:
    - exteriors
    - direct lighting dominance, like studio scenes
    - high-sampling requirement, like real DOF

    Situations where BDPT will perform better:
    - interiors
    - lots of GI
    - caustics
    - IES emitters
    - covered emitters (like lampshades)

    BDPT is set as default engine. It can be changed both in NOX or Max/Blender. This selection is kept in scene file.

    It has to be told that paths from light are camera-independent and this leads to following two problems:
    - in bad scenario you can sample paths from emitters that won't reach camera at all (cpu time waste)
    - two buffers are needed to create image. This is because pure light paths (totally camera independent) samples can't be averaged like rest of paths. They are averaged per whole image in contrast to camera-dependent samples which are averaged per pixel.
    If one insists on using BDPT on exterior scene it is suggested to keep it small. This is because for whole scene there is created virtual portal for sun to make it as starting points for emission. Unnecessary big portal gives lower samples per area which leads to higher noise. What I mean sun will illuminate parts of scene that gives small or none contribution to image - cpu time waste.
    Last edited by marchewa; 2013-02-12 at 03:00 PM.
  2. Join Date
    Jul 2011
    Posts
    3
    #2

    Any chance for blender instances for NOx ? Like particles as objects or duply faces ?
  3. Join Date
    Jul 2007
    Posts
    532
    #3

    Instances works for a long time, also in Blender script. Recently particles (object or group) also started to work... more or less, but they are kept as experimental. Problem is that NOX doesn't like high number of instances, it slows him down a lot. In most situations exporting whole scene in one mesh increases speed noticably.
  4. Join Date
    Jul 2011
    Posts
    3
    #4

    Yep, thanks, download new version it works, enough for me) but... only one reason left, for not using nox, it's camera shifting, all renders i use before can do this, with blender cameras, but not NOX. Very usefull in exterior visualisation. Hope for this in future versions))
    Thanks
  5. Join Date
    Jul 2007
    Posts
    532
    #5

    There is a way around... you render larger view in direction for where it is straight view and then use only part of it. But yes, it is a flaw anyway.
  6. Join Date
    Jul 2011
    Posts
    3
    #6

    Yes i know about this, but increase of resolution will slower render)
  7. Join Date
    Jul 2011
    Posts
    21
    #7

    Test of BDPT. Looks like a PT with enabled "Disable 2nd caustic".
  8. Join Date
    Jul 2007
    Posts
    532
    #8

    Disable 2nd caustic in Path Tracing should kill all energy in GI that comes from caustics (except caustic visible in camera). Or simpler speaking light goes through glass and makes a caustic on floor.. and from here it can't reflect anywhere else like walls. This gives some error to render but gives less overburnt pixels. So except potentially darker GI it should give same result as BDPT or just PT without using that option.

    Some other issue might be speed. It is visible in time and caustic noise. Probably you had scene build in a way that a lot of emission from light was sent into empty space and that was a waste of cpu time. There should be quite a visible speed-up if you make that emitter a spot (through IES).

    You are probably aware that low reflections count made quite a lot of rays stop when going through complex geometry glass... and it resulted in darker areas.
  9. Join Date
    Jul 2011
    Posts
    21
    #9

    Okay, I'll remember this.
    NOX supports standard lights or I must use material with IES parameters?
    Last edited by Fandia; 2013-02-21 at 02:24 PM.
  10. Join Date
    Jul 2007
    Posts
    532
    #10

    No, emitter has to be on geometry + IES to get spot.
You need to be logged in to leave a comment. You don't have account? Register now.
Best of Evermotion
The best works from the Forum Gallery picked by Evermotion staff