Distributed Path - LuxRender Wiki
Luxrender GPL Physically Based Renderer

Distributed Path

Personal tools

From LuxRender Wiki

Jump to: navigation, search

The distributed path integrator is a modified version of the normal path integrator. The normal path integrator always spawns a single primary ray when hitting a surface, unless the entire path sequence is being terminated. Distributed path is a bit different. It can spawn more than one ray. And how many it spawns and how far they go is determined by the surface that they first hit. Additionally, distributed path can reject samples that are overly powerful compared to the average (although in LuxRender 0.8 version a similar, but more intelligent system was introduced into the film pipline itself). Finally, distributed path supports a set of material compositing options that are not available in other integrators.

Distributed path is best suited to render jobs where speed and an approximation of real world light behavior is more desireable than perfect simulation of light. It was originally conceived for use in animations and visual effects.

So, in summary, what distributed path offers:

  • It can sample certain materials more than others
  • By setting some certain depths to 0, you can make it behave like the direct lighting integrator on some materials, while behaving like the path integrator on others
  • You have several compositing options that are not present with the other integrators



Distributed path has quite a few parameters, that can be broken up into several groups. These are covered below.

Light Sampling (shadow rays)

These controls allow you adjust the behavior of direct light sampling. The main function here are the direct and indirect sampling options. These controls act like the shadowraycount property on the path integrator, but allow you to set separate values for direct (initial path vertex) and indirect (subsequent path vertices)

Material/path settings

These are the primary controls for distributed path. There is a depth for each of six kinds of ray intersections. These are reflection and "refraction" (transmission) from glossy, diffuse, and specular (mirror) surfaces. The glossy and diffuse settings also have an option for "samples", this allows you to create multiple new rays when hitting that material. Setting the depth for any of these to 0 will cause distributed path to behave like the direct lighting integrator for that surface. Note that samples only refers to the number of additional paths started from the surface, so if depth is set to 0, the samples control for that path is irrelevant.

Diffuse reflection

This is the basic reflection off of matte materials. Generally, you should set depth the same as you would the "maxdepth" parameter for the path integrator. Increase samples if you are getting grain in diffuse areas, particularly areas that are not lit directly.

Diffuse refraction

This is light transmitted through the mattetranslucent and glossytranslucent materials. Depth should be set to at least 3-4 to prevent darkening of these materials. Increase sampling if you are getting noise from these objects (such as from SSS)

Glossy reflection

This is for paths continued off glossy surfaces. (Essentially, that means any material with a roughness control). Generally, these require more sampling that diffuse materials, so your sample count here should be set higher than your diffuse samples setting. This will slow the renderer down, but you will need less samples overall in the image, and it should net out to a shorter render time.

Glossy refraction

This is light transmitted through "glossy" materials. The only material that is actually a "glossy transmitter" in Lux's core is roughglass. (Glossytranslucent is a glossy reflector, but a diffuse transmitter). If you are not using roughglass in your scene, this doesn't do anything. If you do have roughglass, be sure to set the depth and samples to something higher than 1, but remember that roughglass is not a fast material to render.

Specular reflection

Light reflected from the glass and mirror materials. Light always bounces "straight off" these materials, so you cannot set a number of samples. If you are getting black reflections, increase the depth.

Specular refraction

Light transmitted through glass and null materials. If you are getting black glass or null materials are becoming visible, increase the depth for this.

Rejection settings

These settings allow LuxRender to reject a sample if it is much brighter than the surrounding area. There are seperate rejection settings for diffuse reflection, diffuse refraction, glossy reflection, and glossy refraction. (see the material/path settings above for what these mean). The threshold is a multiple of the average value. So setting threshold=10 means a sample that is 10x the power of a normal sample of that type will be rejected.

This is somewhat less intelligent than the outlier rejection filter built into LuxRender's film (outlier rejection can "learn from its mistakes" and stop rejecting samples from an area if it keeps on generating similar bright samples). However, this feature generally does not impact speed to the same degree as outlier rejection, since this is handled by the tracing threads directly rather than by the film splatting thread. You can always combine the two features if you find it useful.

Material compositing settings

  • Visible Direct
    • Disable to render this material as a holdout (mask). The normal material will still be visible in reflections and GI
  • Visible Indirect
    • Disable to hide this object from reflections and GI
  • Visible Emitter
    • If disabled, an emitting object will not appear to shine, even when acting as a light emitter
  • Visible Indirect Emitter
    • If disabled, an emitting object will not cast light, even though it appears to shine when viewed directly.
  • Override Alpha
    • If enabled along with disabling visible-direct, the resulting alpha value will be the set value rather than 0.