Square Enix © Goodbye Kansas

Table of Contents

This page provides information about Light Path Expressions.

 

Overview


Light Path Expressions or LPEs are a very powerful and advanced tool for extracting specific lighting events from the scene to a separate channel. This allows for a very fine control of the image in compositing.

For example, LPEs allow breaking the GI down to different types of light sources like lights, the environment and self-illuminating objects, or breaking down the GI to its separate bounces, or capturing only self-reflections, or the SSS that's only seen behind glass and similar for compositing control of only this aspect of the image.

Read our Introduction to Light Path Expressions article.

The right-click menu offers a list of all symbols in LPEs, as well as presets to get you started.

There are preset equivalents to already available render elements (like Beauty, Lighting, GI, Light Select types etc). There are also Misc and masking presets for the GI coming from the environment or for the GI coming from a specific object.

Light Path Expressions that capture specific events after the second GI bounce will work correctly only with Brute Force as a secondary GI engine

Also available is a list of boolean operations that allow more complex expressions to be rendered in a single channel. For example, in this way some compositing operations like union or subtraction can be done in the renderer, instead of in the compositing application.

Тhere is a dedicated LPE Builder available to help you compose expressions and track exactly which ray paths they capture.

More information on how LPEs work is available at the Light Path Expressions courseware page.

 

 



Scene Setup


The scene setup is similar to the Light Select workflow. As LPEs are a mode of the Light Select render element, the expression will capture contributions of the light(s) added to the Light Select set. If the Light Select is empty, the expression will capture contributions for all scene lights.

LPEs also allow extracting information from the environment, for example allow capturing the GI that comes from the environment only. This does not require adding lights to the Light Select set.



Syntax


The LPE syntax is based on regular expressions.

Expressions describe a light path that starts from the camera and traces all light bounces to a light source.

Essentially, the syntax follows the direction in which a ray travels in the scene and captures information along the ray path.

Keep this information in mind, as light in the scene travels from the light source to the camera, but the expression is in reverse, following the path of the rays shot from the camera.

For example, if you need to capture GI bounced off of one object onto another, light will travel from the light, onto the object that casts GI, then onto the object that receives GI and end at the camera. But in LPEs, just like in ray tracing, the expression will be in reverse, starting from the camera, asking for what object receives GI, then what object casts the GI and end at the light source.

 

 

LPE Symbols


The LPE alphabet consists of the symbols representing a ray event/type and additional regular expression symbols (“.”, “+”, “*”, “<”, “>”, “[“, “]”, “|”, “?”, “^” and additional label strings).

A valid expression starts from the camera (C), captures ray spawn and scattering events and ends at light (L), emissive object (O) or the environment (B).

 

Ray spawn events other than C or V can be combined with scattering types (e.g. <RD> - capture only diffuse reflection) to get a more specific ray event or they can be used directly (e.g. R - capture reflections of any scattering type. This is also equivalent to <R.>)

Ray termination events can also be combined with each other when you want to capture the contribution of a light together with emissive objects, e.g. C<RD>.*[LO] will capture the GI coming from lights or emissive objects.

See a full list of LPE Symbols below:

LPE Symbols

Symbol

Description

Type

Initial ray spawn event

C

Camera ray

Initial ray spawn event

Ray spawn events

R

Reflection ray

Ray spawn event

T

Transmission ray

Ray spawn event

V

Volume ray

Ray spawn event

Scattering types

D

Diffuse scattering

Scattering type

G

Glossy scattering

Scattering type

S

Singular scattering

Scattering type

s

Straight (no) scattering

Scattering type

Ray termination (final) events

L

Light hit

Ray intersection event

O

Emitting object hit

Ray intersection event

B

Background hit

Ray intersection event

 

 


 


Presets


A number of presets are available for Light Path Expressions.

There are preset equivalents to already available render elements (like Beauty, Lighting, GI, Light Select types etc).

The Misc and masking presets are useful in common-use cases.

Any preset can be used as a starting point for building other expressions and like any LPE, they can be combined with boolean operations.

LPE Presets: Render Element equivalents

Preset

Light path expression
Render elements
RGBC.*
Self-illuminationC[OL]
BackgroundCB
LightingC<RD>L
SpecularC<R[GS]>L
GIC<RD>(.+L|.*[OB])
SSSC<TD>(.+L|.*[OB])
ReflectionC<R[GS]>(.+L|.*[OB])
RefractionC<Т[GS]>(.+L|.*[OB])
AtmosphereCV.*
It will be faster and more efficient to use the already available render elements instead of their LPE equivalents in the presets, of course - the examples are there as a point of reference.

LPE Presets: Light Select equivalents

Preset

Light path expression
Light selects
Direct IlluminationCRL
Direct DiffuseC<RD>L
Direct SpecularC<R[GS]>L
FullC.*L
IndirectCR.+L
Indirect DiffuseC<RD>.+L
Indirect SpecularC<R[GS]>.+L






LPE Presets: Misc




Preset

Light path expression
Misc

Self-illumination, no lights

CO
GI from self-illuminationC<RD>.*O
GI from environmentC<RD>.*B




LPE Presets: Object/Material select



Preset

Light path expression
Object/Material select

Indirect for object label 1

CR'1'.+L
Indirect for all object labels but 1 and 2CR[^'1''2'].+L
RGB for material label 1C.'m1'.*

To use object labels, add V-Ray User Attributes to you object, where the attribute name is lpe_label and equals your custom label. For example, lpe_label=testLabel.

To use material labels, add Extra V-Ray Attributes > Light Path Expression Label to your material. When used in expressions, material labels require the m prefix.

See the examples below on how to set up object and material labels.





LPE Object/Material select

LPEs can record information for only specific objects or materials by adding a label.

Read more about capturing LPEs for specific objects and materials in the Advanced Light Path Expressions article.


Coat and Sheen material labels

The coat and sheen material labels are reserved for the additional VRayMtl Coat and Sheen layers.

Read more about using the coat and sheen labels in the Advanced Light Path Expressions article.




Boolean operations


Boolean operations allow us to combine expressions. We can complement (^), intersect (&) or unite (|) expressions, or we can subtract (-) one expression from another.

Boolean operations can also be very useful in a number of scenarios to simplify the compositing workflow.

The Advanced Light Path Expressions article goes into greater detail about complex LPE usage and concepts.

Boolean operation symbols

Boolean operation

Symbol
Expression operators

Complement

^
Intersection&
Union

|

Subtraction-

 

 

Example: ^(C<RD>L) - Returns everything except the direct diffuse lighting. For more examples, see the Advanced Light Path Expressions page.