Contents
Quick Introduction
In RenderMan, in addition to the built-in AOVs , LPE, which is adopted from Open Shading Language's Light Path Expression, specifies what light transport paths to output to a display channel. In other words, we don't have to modify the shaders or plugins to output a custom AOV that uses the LPE.
The setup is the same as an AOV except we use a light path expression instead of an AOV channel name. We can also use a short descriptive name (e.g. lpe:diffuse) as well as the long LPE expression (e.g. lpe:CD<L.>).
Additionally, we can group the outputs by light groups and/or by geometry set up by a lpegroup.
Usage
LPE is made up of tokens which are not artist-friendly. For this reason, we provide a list of built-in LPEs with short descriptive names and hide the non-artist friendly expressions.
RenderMan for Maya
In RfM, LPE can be easily added by right click on a LPE name from the built-in LPEs list in RenderMan Controls' Add Channels/Outputs.
RenderMan for Katana
In RfK, LPE is specified via PrmanOutputChannelDefine. For a list of built-in LPE names, please see the Built-in LPEs table.
RIB
For DisplayChannel, we can use either the short name or long expression, e.g. lpe:diffuse or lpe:CD<L.>.
DisplayChannel "color lpe:diffuse"
or
DisplayChannel "color lpe:CD<L.>"
Name | Expression |
---|---|
lpe:diffuse | lpe:CD<L.> |
lpe:specular | lpe:CS<L.> |
lpe:emission | lpe:CO |
lpe:indirectdiffuse | lpe:(C<RD>[DS]+<L.>)|(C<RD>[DS]*O) |
lpe:indirectspecular | lpe:(C<RS>[DS]+<L.>)|(C<RS>[DS]*O) |
lpe:subsurface | lpe:(C<TD>[DS]+<L.>)|(C<TD>[DS]*O) |
lpe:refraction | lpe:(C<T[S]>[DS]+<L.>)|(C<T[S]>[DS]*O) |
lpe:shadowcollector | lpe:shadows;C[<.D'collector'><.S'collector'>]<L.> |
lpe:reflectioncollector | lpe:C<RS'collector'>([DS]+<L.>)|([DS]*O) |
lpe:shadowcollector collects shadow for objects that have a lpegroup called "collector".
lpe:reflection collects reflection for objects that have a lpegroup called "collector".
Caustics are not included in the built-in list because they overlap with lpe:indirectdiffuse. However, you can select caustics with the expression lpe:CD[S]+<L.>
LPE Outputs