Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Contents

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 RixBxdfLobes.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)

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 surface normal (N) (RixShadingContext:: k_Nn).

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 bxdf to provide lighting independent material properties to the integrator. For example, user lobes are used to provide a lobe albedo, or compositing alpha values.

Light Emission

Bxdfs can emit lights 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.