# [−][src]Module tray_rust::bxdf

Defines the BxDF interface implemented by BRDF/BTDFs to describe material properties. Also provides the BSDF type which composes various BRDF/BTDFs to describe materials

## Re-exports

`pub use self::bsdf::BSDF;` |

`pub use self::lambertian::Lambertian;` |

`pub use self::oren_nayar::OrenNayar;` |

`pub use self::specular_reflection::SpecularReflection;` |

`pub use self::specular_transmission::SpecularTransmission;` |

`pub use self::merl::Merl;` |

`pub use self::torrance_sparrow::TorranceSparrow;` |

`pub use self::microfacet_transmission::MicrofacetTransmission;` |

## Modules

bsdf | Defines the BSDF which acts as a container for composing the various BRDFs and BTDFs that describe the surface's properties |

fresnel | Provides the Fresnel term trait and implementations for conductors and dielectric materials |

lambertian | Defines a Lambertion BRDF that describes perfectly diffuse surfaces. See Lambertian reflectance |

merl | The MERL BRDF represents the surface's properties through data loaded from a MERL BRDF Database file. The BRDF itself just stores the data loaded from the BRDF file while actual loading is done by the MERL material when it's created. |

microfacet | Module providing various microfacet distribution functions and trait that's implemented by all provided distributions |

microfacet_transmission | This module provides a microfacet model for transmission (a BTDF), see Walter et al. 07 for details. |

oren_nayar | Defines an Oren-Nayar BRDF that describes diffuse reflection from rough surfaces See Oren-Nayar reflectance model |

specular_reflection | Defines a BRDF that describes specular reflection |

specular_transmission | Defines a BTDF that describes specular transmission |

torrance_sparrow | This module provides the Torrance Sparrow microfacet BRDF, see Walter et al. 07 for details. |

## Enums

BxDFType | Various types of BxDFs that can be selected to specify which types of surface functions should be evaluated |

## Traits

BxDF | Trait implemented by BRDF/BTDFs in |

## Functions

arctan_theta | Compute the value of arctan theta for a vector in shading space |

cos_phi | Compute the value of cosine phi for a vector in shading space |

cos_theta | Compute the value of cosine theta for a vector in shading space |

cos_theta_sqr | Compute the value of cosine^2 theta for a vector in shading space |

same_hemisphere | Check if two vectors are in the same hemisphere in shading space |

sin_phi | Compute the value of sine phi for a vector in shading space |

sin_theta | Compute the value of sine theta for a vector in shading space |

sin_theta_sqr | Compute the value of (sine theta)^2 for a vector in shading space |

tan_theta | Compute the value of tan theta for a vector in shading space |

tan_theta_sqr | Compute the value of tan theta^2 for a vector in shading space |