RiMaterialSample

BSDF for a point

[ Materials | Source | Search | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

DESCRIPTION

Class Summary

class RiMaterialSample
{
public:
~RiMaterialSample() ;;
bool GetSpreadReflection( const RiUnitVector3& vin, const RiUnitVector3 &vout, RiSpectrum &value ) const;
bool GetSpreadTransmission( const RiUnitVector3 &vin, const RiUnitVector3 &vout, RiMedia *incidentMedia, RiMedia *&transmittedMedia, RiSpectrum &value ) const;
bool GetSpecularReflection( const RiUnitVector3 &vin, RiUnitVector3 &direction, RiSpectrum &multiplier ) const;
bool GetSpecularTransmission( const RiUnitVector3 &vin, RiUnitVector3 &direction, RiMedia *incidentMedia, RiMedia *&transmittedMedia, RiSpectrum &multiplier ) const;
bool GetDirectionalHemisphericalReflectance(const RiUnitVector3 &vin, RiSpectrum &value ) const;
bool GetDirectionalHemisphericalTransmittance(const RiUnitVector3 &vin, RiSpectrum &value ) const;
bool GetBihemisphericalReflectance( RiSpectrum &value ) const;
bool GetBihemisphericalTransmittance( RiSpectrum &value ) const;
bool GetEmittedRadiance(const RiUnitVector3 &vout, RiSpectrum &value ) const;
bool GetEmittedRadiantExitance( RiSpectrum &value ) const;
bool GetSpreadDirection( const RiUnitVector3 &vin, const RiVector2 &seed, RiSpectrum &multiplier, RiUnitVector3 &direction ) const;
bool GetEmittedDirection( const RiVector2 &seed, RiSpectrum &multiplier, RiUnitVector3 &direction ) const;
bool IsLuminaire() const;
void *operator new(size_t size);
void operator delete(void *);
protected:
RiMaterialSample() ;
static RiReal FresnelIOR(RiReal ior, RiReal cosAngle);
static RiSpectrum FresnelNormalRho(const RiSpectrum normalReflectance, RiReal cosAngle);
static RiReal FresnelNormalRho(RiReal R0, RiReal cosAngle);
}; // RiMaterialSample


DESCRIPTION

This class represents the Bidirectional Scattering Distribution Function : BSDF = BRDF + BTDF, where "T" is for "transmission".. Note that the two directional arguments for the GetSpreadReflection and GetSpreadTransmission calls must both be INCOMING-- this is for the sake of preserving reciprocity which allows one to swap function arguments. Note that non-transparent surfaces are "two-sided", meaning that they will reflect light regardless of which side the light comes from, while transmitting surfaces have an unambiguous orientation.


~RiMaterialSample() ;;

ual ~RiMaterialSample() {};No documentation available.

   virtual ~RiMaterialSample()   ;
;

Function is currently defined inline.


bool GetSpreadReflection( const RiUnitVector3& vin, const RiUnitVector3 &vout, RiSpectrum &value ) const;

For directions vin, vout (both points toward surface), what is BRDF val for non-specular portion.

   virtual bool GetSpreadReflection( const RiUnitVector3& vin,
                                     const RiUnitVector3 &vout, 
                                     RiSpectrum &value ) const;

bool GetSpreadTransmission( const RiUnitVector3 &vin, const RiUnitVector3 &vout, RiMedia *incidentMedia, RiMedia *&transmittedMedia, RiSpectrum &value ) const;

For direction vin, vout (both points toward surface), what is BTDF val for non-specular portion.

   virtual bool GetSpreadTransmission( const RiUnitVector3 &vin, 
                                       const RiUnitVector3 &vout,
				       RiMedia *incidentMedia,
				       RiMedia *&transmittedMedia,
				       RiSpectrum &value ) const;

bool GetSpecularReflection( const RiUnitVector3 &vin, RiUnitVector3 &direction, RiSpectrum &multiplier ) const;

For direction vin (points toward surface), what is direction and reflectance of specular reflection.

   virtual bool GetSpecularReflection( const RiUnitVector3 &vin,
                                       RiUnitVector3 &direction, 
                                       RiSpectrum &multiplier ) const;

bool GetSpecularTransmission( const RiUnitVector3 &vin, RiUnitVector3 &direction, RiMedia *incidentMedia, RiMedia *&transmittedMedia, RiSpectrum &multiplier ) const;

For direction vin (points toward surface), what is direction and transmittance of specular transmission.

   virtual bool GetSpecularTransmission( const RiUnitVector3 &vin,
                                         RiUnitVector3 &direction, 
					 RiMedia *incidentMedia,
					 RiMedia *&transmittedMedia,
                                         RiSpectrum &multiplier ) const;

bool GetDirectionalHemisphericalReflectance(const RiUnitVector3 &vin, RiSpectrum &value ) const;

Ratio of incident power from direction vin (points toward surface), to reflected power over all directions. This includes both specular and spread components.

   virtual bool GetDirectionalHemisphericalReflectance(const RiUnitVector3 &vin,
                                            RiSpectrum &value ) const;

bool GetDirectionalHemisphericalTransmittance(const RiUnitVector3 &vin, RiSpectrum &value ) const;

Ratio of incident power from direction vin (points toward surface), to transmitted power over all directions. This includes both specular and spread components.

   virtual bool GetDirectionalHemisphericalTransmittance(const RiUnitVector3 &vin,
                                            RiSpectrum &value ) const;

bool GetBihemisphericalReflectance( RiSpectrum &value ) const;

Ratio of incident power for a constant field (incoming) radiance to reflected power over all directions. This includes both specular and spread components.

   virtual bool GetBihemisphericalReflectance( RiSpectrum &value ) const;

bool GetBihemisphericalTransmittance( RiSpectrum &value ) const;

Ratio of incident power for a constant field (incoming) radiance to transmitted power over all directions. This includes both specular and spread components.

   virtual bool GetBihemisphericalTransmittance( RiSpectrum &value ) const;

bool GetEmittedRadiance(const RiUnitVector3 &vout, RiSpectrum &value ) const;

Amount of radiance emitted by the surface in direction vout

   virtual bool GetEmittedRadiance(const RiUnitVector3 &vout,
                                   RiSpectrum &value ) const;

bool GetEmittedRadiantExitance( RiSpectrum &value ) const;

Amount of radiant exitance (power per unit area) emitted by the surface.

   virtual bool GetEmittedRadiantExitance( RiSpectrum &value ) const;

bool GetSpreadDirection( const RiUnitVector3 &vin, const RiVector2 &seed, RiSpectrum &multiplier, RiUnitVector3 &direction ) const;

Given a seed on [0, 1]^2 give scattered direction and coefficient for spread (non-specular) component. Direction vin points toward surface. Includes spread reflectance and transmittance. The weighting includes attenuation, so a black sirface will set "vale" to zero.

   virtual bool GetSpreadDirection( const RiUnitVector3 &vin,
                                    const RiVector2 &seed,
                                    RiSpectrum &multiplier,
                                    RiUnitVector3 &direction ) const;

bool GetEmittedDirection( const RiVector2 &seed, RiSpectrum &multiplier, RiUnitVector3 &direction ) const;

given a seed on [0, 1]^2 give emitted direction and coefficient m. The power in the particle is the m * P / N where P is the total power and N is the number of particles.

   virtual bool GetEmittedDirection( const RiVector2 &seed,
                                    RiSpectrum &multiplier,
                                    RiUnitVector3 &direction ) const;

bool IsLuminaire() const;

True if material emits, false otherwise.

   virtual bool IsLuminaire() const;

void *operator new(size_t size);

    void *operator new(size_t size);

void operator delete(void *);

    void operator delete(void *);

RiMaterialSample() ;

constructor protected to prevent inadvertant construction

    RiMaterialSample()    
;

Function is currently defined inline.


RiReal FresnelIOR(RiReal ior, RiReal cosAngle);

    static RiReal   	FresnelIOR(RiReal ior, RiReal cosAngle);

RiSpectrum FresnelNormalRho(const RiSpectrum normalReflectance, RiReal cosAngle);

    static RiSpectrum   FresnelNormalRho(const RiSpectrum normalReflectance, RiReal cosAngle);

RiReal FresnelNormalRho(RiReal R0, RiReal cosAngle);

    static RiReal   	FresnelNormalRho(RiReal R0, RiReal cosAngle);

All Members

public:
bool GetSpreadReflection( const RiUnitVector3& vin, const RiUnitVector3 &vout, RiSpectrum &value ) const;
bool GetSpreadTransmission( const RiUnitVector3 &vin, const RiUnitVector3 &vout, RiMedia *incidentMedia, RiMedia *&transmittedMedia, RiSpectrum &value ) const;
bool GetSpecularReflection( const RiUnitVector3 &vin, RiUnitVector3 &direction, RiSpectrum &multiplier ) const;
bool GetSpecularTransmission( const RiUnitVector3 &vin, RiUnitVector3 &direction, RiMedia *incidentMedia, RiMedia *&transmittedMedia, RiSpectrum &multiplier ) const;
bool GetDirectionalHemisphericalReflectance(const RiUnitVector3 &vin, RiSpectrum &value ) const;
bool GetDirectionalHemisphericalTransmittance(const RiUnitVector3 &vin, RiSpectrum &value ) const;
bool GetBihemisphericalReflectance( RiSpectrum &value ) const;
bool GetBihemisphericalTransmittance( RiSpectrum &value ) const;
bool GetEmittedRadiance(const RiUnitVector3 &vout, RiSpectrum &value ) const;
bool GetEmittedRadiantExitance( RiSpectrum &value ) const;
bool GetSpreadDirection( const RiUnitVector3 &vin, const RiVector2 &seed, RiSpectrum &multiplier, RiUnitVector3 &direction ) const;
bool GetEmittedDirection( const RiVector2 &seed, RiSpectrum &multiplier, RiUnitVector3 &direction ) const;
bool IsLuminaire() const;
void *operator new(size_t size);
void operator delete(void *);
protected:
static RiReal FresnelIOR(RiReal ior, RiReal cosAngle);
static RiSpectrum FresnelNormalRho(const RiSpectrum normalReflectance, RiReal cosAngle);
static RiReal FresnelNormalRho(RiReal R0, RiReal cosAngle);

Ancestors

Class does not inherit from any other class.


Descendants

Class is not inherited by any others.


Generated from source by the Cocoon utilities on Fri Feb 25 15:15:31 2000 .