reflection.h File Reference

#include "pbrt.h"
#include "geometry.h"
#include "shape.h"
#include "rng.h"
#include "spectrum.h"
#include "kdtree.h"

Go to the source code of this file.

Classes

struct  IrregIsotropicBRDFSample
struct  BSDFSample
struct  BSDFSampleOffsets
class  BSDF
class  BxDF
class  BRDFToBTDF
class  ScaledBxDF
class  Fresnel
class  FresnelConductor
class  FresnelDielectric
class  FresnelNoOp
class  SpecularReflection
class  SpecularTransmission
class  Lambertian
class  OrenNayar
class  MicrofacetDistribution
class  Microfacet
class  Blinn
class  Anisotropic
class  FresnelBlend
class  IrregIsotropicBRDF
class  RegularHalfangleBRDF
class  BSSRDF

Defines

#define MAX_BxDFS   8
#define BSDF_ALLOC(arena, Type)   new (arena.Alloc(sizeof(Type))) Type

Enumerations

enum  BxDFType {
  BSDF_REFLECTION = 1<<0, BSDF_TRANSMISSION = 1<<1, BSDF_DIFFUSE = 1<<2, BSDF_GLOSSY = 1<<3,
  BSDF_SPECULAR = 1<<4, BSDF_ALL_TYPES, BSDF_ALL_REFLECTION, BSDF_ALL_TRANSMISSION,
  BSDF_ALL
}

Functions

Spectrum FrDiel (float cosi, float cost, const Spectrum &etai, const Spectrum &etat)
Spectrum FrCond (float cosi, const Spectrum &n, const Spectrum &k)
Spectrum FresnelApproxEta (const Spectrum &intensity)
Spectrum FresnelApproxK (const Spectrum &intensity)
Point BRDFRemap (const Vector &wo, const Vector &wi)
float Fdr (float eta)
float CosTheta (const Vector &w)
float AbsCosTheta (const Vector &w)
float SinTheta2 (const Vector &w)
float SinTheta (const Vector &w)
float CosPhi (const Vector &w)
float SinPhi (const Vector &w)
bool SameHemisphere (const Vector &w, const Vector &wp)

Define Documentation

#define BSDF_ALLOC ( arena,
Type   )     new (arena.Alloc(sizeof(Type))) Type
#define MAX_BxDFS   8

Definition at line 184 of file reflection.h.

Referenced by BSDF::Add().


Enumeration Type Documentation

enum BxDFType
Enumerator:
BSDF_REFLECTION 
BSDF_TRANSMISSION 
BSDF_DIFFUSE 
BSDF_GLOSSY 
BSDF_SPECULAR 
BSDF_ALL_TYPES 
BSDF_ALL_REFLECTION 
BSDF_ALL_TRANSMISSION 
BSDF_ALL 

Definition at line 100 of file reflection.h.


Function Documentation

float AbsCosTheta ( const Vector w  )  [inline]
Point BRDFRemap ( const Vector wo,
const Vector wi 
)

Definition at line 239 of file reflection.cpp.

References CosTheta(), M_PI, SinTheta(), and SphericalPhi().

Referenced by IrregIsotropicBRDF::f(), and MeasuredMaterial::MeasuredMaterial().

float CosPhi ( const Vector w  )  [inline]

Definition at line 79 of file reflection.h.

References Clamp(), SinTheta(), and Vector::x.

Referenced by RegularHalfangleBRDF::f(), and OrenNayar::f().

float CosTheta ( const Vector w  )  [inline]
float Fdr ( float  eta  )  [inline]
Spectrum FrCond ( float  cosi,
const Spectrum n,
const Spectrum k 
)

Definition at line 62 of file reflection.cpp.

Referenced by FresnelConductor::Evaluate().

Spectrum FrDiel ( float  cosi,
float  cost,
const Spectrum etai,
const Spectrum etat 
)

Definition at line 52 of file reflection.cpp.

Referenced by FresnelDielectric::Evaluate().

Spectrum FresnelApproxEta ( const Spectrum intensity  ) 
Spectrum FresnelApproxK ( const Spectrum intensity  ) 
bool SameHemisphere ( const Vector w,
const Vector wp 
) [inline]
float SinPhi ( const Vector w  )  [inline]

Definition at line 86 of file reflection.h.

References Clamp(), SinTheta(), and Vector::y.

Referenced by RegularHalfangleBRDF::f(), and OrenNayar::f().

float SinTheta ( const Vector w  )  [inline]

Definition at line 74 of file reflection.h.

References SinTheta2().

Referenced by BRDFRemap(), CosPhi(), RegularHalfangleBRDF::f(), OrenNayar::f(), and SinPhi().

float SinTheta2 ( const Vector w  )  [inline]

Definition at line 69 of file reflection.h.

References CosTheta().

Referenced by SpecularTransmission::Sample_f(), and SinTheta().

Generated on Sat Aug 28 20:00:12 2010 for pbrt by  doxygen 1.6.3