Typedefs | Functions
BRDF API

Typedefs

typedef AtVector(* AtBRDFEvalSampleFunc )(const void *brdf_data, float rx, float ry)
 
typedef AtColor(* AtBRDFEvalBrdfFunc )(const void *brdf_data, const AtVector *indir)
 
typedef float(* AtBRDFEvalPdfFunc )(const void *brdf_data, const AtVector *indir)
 

Functions

AI_API float AiOrenNayarBRDF (const AtVector *L, const AtVector *V, const AtVector *N, float r)
 Oren-Nayar diffuse BRDF. More...
 
AI_API float AiLommelSeeligerBRDF (const AtVector *L, const AtVector *V, const AtVector *N)
 Lommel-Seeliger diffuse BRDF (aka lunar dust) More...
 
AI_API float AiCookTorranceBRDF (const AtVector *L, const AtVector *V, const AtVector *N, const AtVector *u, const AtVector *v, float rx, float ry)
 Cook-Torrance microfacet BRDF. More...
 
AI_API float AiWardBRDF (const AtVector *L, const AtVector *V, const AtVector *N, const AtVector *u, const AtVector *v, float rx, float ry)
 Ward specular model. More...
 
AI_API float AiWardDuerBRDF (const AtVector *L, const AtVector *V, const AtVector *N, const AtVector *u, const AtVector *v, float rx, float ry)
 Improved Ward-Duer specular model. More...
 
AI_API float AiStretchedPhongBRDF (const AtVector *L, const AtVector *V, const AtVector *N, float n, bool retro=false)
 Stretched-Phong BRDF. More...
 
AI_API float AiAshikhminShirleyBRDF (const AtVector *L, const AtVector *V, const AtVector *N, const AtVector *u, const AtVector *v, float nx, float ny)
 Ashikhmin-Shirley BRDF. More...
 

Detailed Description

Function Documentation

AI_API float AiOrenNayarBRDF ( const AtVector L,
const AtVector V,
const AtVector N,
float  r 
)

Oren-Nayar diffuse BRDF.

This is the model described in: "Generalization of Lambert’s reflectance model", Oren and Nayar, SIGGRAPH 1994

This model considers rough surfaces to have a collection of microfacets with a statistical distribution of directions. The surface can be made rougher or smoother by changing the roughness parameter sigma, that controls the standard deviation (in radians) of the angle distribution of the microfacets. If sigma is zero, the surface is perfectly lambertian. Values greater than zero give the surface backscattering properties and a flatter look.

It uses essentially the same microgeometry as the Torrance-Sparrow model, but assumes that the underlying surface is diffuse, rather than specular.

Note
This BRDF is affected by the physically_based render option. When physically_based is active, results are darker by a factor of Pi.
See Also
http://www1.cs.columbia.edu/CAVE/publications/pdfs/Oren_SIGGRAPH94.pdf
Parameters
Ldirection towards the light
Vdirection towards the viewer
Nsurface normal
rsurface roughness (sigma), normalized in the [0, 1] range
Returns
reflectance value
AI_API float AiLommelSeeligerBRDF ( const AtVector L,
const AtVector V,
const AtVector N 
)

Lommel-Seeliger diffuse BRDF (aka lunar dust)

The Lommel-Seeliger volumetric scattering BRDF is a simple BRDF predicting scattering from a dusty surface. Dusty surfaces scatter the reflected light in all directions toward grazing angles to the surface. The BRDF is:

brdf(wi,wo) = 1 / (N.wi)+(N.wo)

The Lommel-Seeliger function is essentially a "distillation" of the Hapke function that does not contain the more complicated terms. It relies on the incidence and emergence angles alone. It ignores masking and shadowing.

The Lambert and Lommel-Seeliger functions represent end-members on a scale that ranges from an "icy-type" surface (Lambert) to a "lunar-type" surface (Lommel-Seeliger).

Note
This BRDF is affected by the physically_based render option. When physically_based is active, results are darker by a factor of 4*Pi.
See Also
Parameters
Ldirection towards the light
Vdirection towards the viewer
Nsurface normal
Returns
reflectance value
AI_API float AiCookTorranceBRDF ( const AtVector L,
const AtVector V,
const AtVector N,
const AtVector u,
const AtVector v,
float  rx,
float  ry 
)

Cook-Torrance microfacet BRDF.

This is the BRDF described in: "Microfacet Models for Refraction through Rough Surfaces", by Walter, Marschner, Li and Torrance, Eurographics 2007. The paper presents a variation of the original Cook-Torrance BSDF extended to simulate transmission through rough surfaces, but here we only use the BRDF (reflection) part, not the full BSDF.

Note
The implementation used here DOES NOT include the Fresnel term described in the paper at all, and it is up to the caller to scale the result.
See Also
http://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf
Warning
The u , v and ry variables are currently not being used and will have no effect in the output of this BRDF. The current implementation is isotropic and uses rx as its roughness parameter.
Parameters
Ldirection towards the light
Vdirection towards the viewer
Nsurface normal
usurface tangent vector along the U coordinate
vsurface tangent vector along the V coordinate
rxsurface roughness along the U direction
rysurface roughness along the V direction
Returns
reflectance value
AI_API float AiWardBRDF ( const AtVector L,
const AtVector V,
const AtVector N,
const AtVector u,
const AtVector v,
float  rx,
float  ry 
)

Ward specular model.

Ward's anisotropic BRDF, as described in: "Measuring and Modeling Anisotropic Reflection", Gregory J. Ward, SIGGRAPH 1992

With corrections and improvements from: "Notes on the Ward BRDF", Bruce Walter, Cornell University Technical report PCG-05-06

Note
NULL values for u and v may be provided. However if the caller provides non-NULL vectors, it is expected that they form an orthonormal basis with N. It is also expected that all vectors be of unit length.
See Also
http://www.graphics.cornell.edu/pubs/2005/Wal05.html
Deprecated:
Use AiWardDuerBRDF() instead.
Parameters
Ldirection towards the light
Vdirection towards the viewer
Nsurface normal
usurface tangent vector along the U coordinate
vsurface tangent vector along the V coordinate
rxsurface roughness along the U direction, in [0, 1.0]
rysurface roughness along the V direction, in [0, 1.0]
Returns
reflectance value
AI_API float AiWardDuerBRDF ( const AtVector L,
const AtVector V,
const AtVector N,
const AtVector u,
const AtVector v,
float  rx,
float  ry 
)

Improved Ward-Duer specular model.

Improved Ward-Duer anisotropic specular BRDF as described in: "Bounding the Albedo of the Ward Reflectance Model", D. Geisler-Moroder and A. Duer, Technical Report, University of Innsbruck, March 2010

This solves two major problems with the (Walter-corrected) Ward BRDF: the severe darkening as you move towards grazing angles, and the divergence of the albedo at highly grazing angles.

Note
NULL values for u and v may be provided. However if the caller provides non-NULL vectors, it is expected that they form an orthonormal basis with N. It is also expected that all vectors be of unit length.
See Also
http://www.uibk.ac.at/mathematik/personal/geisler-moroder/publications/dgmad_bounding_albedo_ward_brdf_tr.pdf
Parameters
Ldirection towards the light
Vdirection towards the viewer
Nsurface normal
usurface tangent vector along the U coordinate
vsurface tangent vector along the V coordinate
rxsurface roughness along the U direction, in [0, 1.0]
rysurface roughness along the V direction, in [0, 1.0]
Returns
reflectance value
AI_API float AiStretchedPhongBRDF ( const AtVector L,
const AtVector V,
const AtVector N,
float  n,
bool  retro 
)

Stretched-Phong BRDF.

This is the BRDF described in: "Compact Metallic Reflectance Models", by Neumann, Neumann and Szirmay-Kalos, Eurographics'99. It is a physically-plausible BRDF based on modifications of the Phong, Blinn and Ward models. It has some nice properties that make it well suited for Monte Carlo ray tracing.

See Also
http://www.iit.bme.hu/~szirmay/brdf6_link.html
Note
This BRDF is affected by the physically_based render option. When physically_based is active, results are darker by a factor of Pi.
Parameters
Ldirection towards the light
Vdirection towards the viewer
Nsurface normal
nPhong exponent, in [2,inf)
retrothis is a rarely-used, optional argument; if enabled, the specular lobe is retro-reflective
Returns
reflectance value
AI_API float AiAshikhminShirleyBRDF ( const AtVector L,
const AtVector V,
const AtVector N,
const AtVector u,
const AtVector v,
float  nx,
float  ny 
)

Ashikhmin-Shirley BRDF.

This is the BRDF described in: "An Anisotropic Phong BRDF Model" Michael Ashikhmin, Peter Shirley Journal of Graphics Tools, Volume 5, Issue 2, 2000

See Also
http://www.cs.utah.edu/~shirley/papers/jgtbrdf.pdf
Parameters
Ldirection towards the light
Vdirection towards the viewer
Nsurface normal
usurface tangent vector along the U coordinate
vsurface tangent vector along the V coordinate
nxspecular glossiness factor along the U coordinate
nyspecular glossiness factor along the V coordinate
Returns
reflectance value

© 2009-2013 Solid Angle SL · all rights reserved · www.solidangle.com
Generated for Arnold 4.0.14.0 by Doxygen 1.8.3.1