Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Bxdfs are characterized as a collection of individually sampled lobes. Integrators may request samples from a subset of lobes (e.g. ask for only the diffuse part of the material response). The logic related to bxdf lobes is contained in RixBxdfLobesRixBxdfLobe.h

RenderMan currently supports the following lobes:

  • diffuse lobes (up to 4 lobes)
  • specular lobes (up to 8 lobes)
  • user lobes (up to 12 lobes, with 3 lobes reserved for subsurface scattering)

Diffuse and Specular Lobes

Diffuse lobes represent isotropic scattering of light, the appearance of which is largely independent of the viewing direction (V) (RixShadingContext:: k_Vn) and , but depends on surface normal (N) (RixShadingContext:: k_Nn) and incident light direction (the Bxdf direction parameter usually called Ln).

Specular lobes represent surfaces whose roughness ranges from wide glossy to mirror-like interaction, the appearance of which is dependent on the viewing direction (V), surface normal (N) and incident light direction (L). Note that perfectly specular lobes (mirror-like) should be marked as discrete (by properly setting the discrete flag in the lobe constructor, or using SetDiscrete(true)).

User Lobes

User lobes allow a bxdf to provide lighting-independent material properties to the integrator. For example, user lobes are used to provide a lobe albedo, or compositing alpha valuesprovide alpha values for compositing.

Subsurface lobes

To facilitate subsurface scattering and marking rays as subsurface scattering rays, the last 3 of the 12 user lobes are reserved for subsurface scattering. A bxdf that generates a subsurface ray should set the ray's lobeSampled to diffuse transmission and the lobe ID to one of the three special values k_RixBXSubsurfaceLobeId1 .. k_RixBXSubsurfaceLobeId3 defined in RixBxdfLobe.h.

Light Emission

Bxdfs can emit lights light by overriding the RixBxdf::EmitLocal() method. This local light emission is not considered by the lighting services and is therefore not importance sampled. Local light emission is intended for low intensity emission. If this emission significantly contributes to the lighting of the scene, a proper light source should be used for performance reasons (less noisy images).