Overview
Now that we've looked at how LPEs work and know the basics let's look at some advanced concepts and more ways to use LPEs.
Operations
Light path expressions may also include the modifiers placed after event symbols:
? for 0 or 1 repetitions (or an optional event)
+ for 1 or more repetitions (or indirect). See the example.
* for 0 or more repetitions (any)
These can be used in combination with the . symbol. It can signify an arbitrary ray spawn event or an arbitrary scattering type; simply put, it stands for any symbol.
Look at the table to the right to see how these modifiers change the expressions.
Symbols in an expression can be grouped
[] groups event, scatterings, and labels
<> groups event, scatterings, and labels
[^] inverts events, scatterings, and labels
'' labels for masking objects or materials are placed inside single quotations
| OR (pipe symbol)
() groups symbols
Expression | Equivalent (Description) | Captured ray paths |
---|---|---|
C.*L | Full light select | camera (C) → any event (.) that repeats zero or more times (*) → light (L) |
CRL
| Direct light select | camera → diffuse reflection → light |
CR.+L | Indirect light select | camera → any event (.) that repeats one or more times (+) → light |
CR?L | ? | camera → diffuse reflection → light |
C<RD>L
| Lighting (Direct diffuse reflections) | camera → diffuse reflection → light |
C<R[GS]>L
| Specular (Direct glossy and singular reflections) | camera → glossy reflection → light camera → singular reflection → light |
C<RD'1'>L
| Lighting for object label 1 | camera → diffuse reflection for the object with label 1 → light |
C<RD[^'1']>L
| Lighting for all objects other than the object label 1 | camera → diffuse reflection for objects that don't have a label 1 → light |
C<RD>(.+L|.*[OB])
| GI (Indirect diffuse reflections) | camera → diffuse reflection → any event (.) that repeats one or more times (+) → light camera → diffuse reflection → any event (.) that repeats zero or more times (*) → emission camera → diffuse reflection → any event (.) that repeats zero or more times (*) → background |
Boolean Operations
Boolean operations allow us to combine expressions. We can complement (^), intersect (&), or unite (|) expressions, or we can subtract (-) one expression from another.
Let's look at some examples.
GI can be broken down into different types of light sources: lights, self-illuminating objects, and the environment. If we need to control each of these separately in compositing, we can use the built-in presets, respectively: C<RD>.+L, C<RD>.*O and C<RD>.*B. Combining these in compositing (with a plus) replaces the GI channel in a back-to-beauty composite. However, if we only need to grade the GI from Lights, we can render a GI render element and C<RD>.+L. Then, we subtract C<RD>.+L from the GI in compositing, grade C<RD>.+L, and add it back to the composite.
Alternatively, we can render GI and an LPE for GI minus C<RD>.+L. This way, we only need to add the graded C<RD>.+L channel to the GI in compositing, saving us some compositing complexity.
For the purpose of this example, we can do a union of the GI coming from all three types of light sources to get the GI using the pipe symbol for union: (C<RD>.+L)|(C<RD>.*O)|(C<RD>.*B)
Boolean operations can also be useful when using LPEs with object or material labels.
Let's look at a simple example with direct lighting. V-Ray already has a render element for this (Lighting); the equivalent expression is C<RD>L. If we additionally want to capture direct lighting falling onto object(s) labeled cube, we need to render an LPE for C<RD'cube'>L. We can then subtract C<RD'cube'>L from the Lighting channel in compositing, grade it, and add it back in.
Alternatively, we can render the C<RD'cube'>L expression and a second one that does the subtraction right in the renderer: (C<RD>L)-(C<RD'cube'>L). We then grade each channel as needed and add them with a plus in the composite.
Additional examples
SSS:
- SSS from objects directly visible to the camera C<TD>+L
- SSS directly visibly OR occluded (behind reflections and refractions) C<[RT][SG]>*<TD>.+L
- SSS only from occluded objects C<[RT][SG]>+<TD>.+L
Self-reflections by material label 1
- C<R[GS]'m1'>.'m1'+L
Emissive
- Emissive (self-illuminating) objects only - direct camera rays CO
- The GI coming from emissive objects C<RD>.*O
- The union of GI, coming from an emissive object and the directly visible to camera emissive objects (C<RD>.*O)|(CO)
GI
- Full GI C<RD>(.+L|.*[OB])
- GI from the environment only C<RD>.*B
- GI minus GI from environment C<RD>(.+L|.*[OB])-(C<RD>.*B)