Struct arendur::bxdf::microfacet::Beckmann
[−]
[src]
pub struct Beckmann { pub ax: Float, pub ay: Float, }
A Beckmann microfacet distribution
With microfacet distribution specified as $D(\omega_h) = \frac{ \exp{-tan2\theta_h(cos2\phi_h/\alpha_x2+sin2\phi_h/\alpha_y2)} }{ \phi*\alpha_x*\alpha_y*cos4\theta_h }$
Fields
ax: Float
microfacet oriented perpendicular to x
-axis
ay: Float
microfacet oriented perpendicular to y
-axis
Trait Implementations
impl Copy for Beckmann
[src]
impl Clone for Beckmann
[src]
fn clone(&self) -> Beckmann
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl Debug for Beckmann
[src]
impl MicrofacetDistribution for Beckmann
[src]
fn distribution(&self, wh: Vector3f) -> Float
Given the macro surface normal wh
, returns the differential area of microfacets from that angle Read more
fn lambda(&self, w: Vector3f) -> Float
Given a direction w
, return masked prjected surface area per visible projected surface area along that direction, assuming this value is independent from wh
. Read more
fn sample_wh(&self, wo: Vector3f, u: Point2f) -> Vector3f
given a uniform sample, return a sampled macro normal wh
fn visible(&self, w: Vector3f) -> Float
fraction of facets visible from w
. The masking-shadowing function $G_l$ This interface assumes independence from wh
Read more
fn visible_both(&self, w0: Vector3f, w1: Vector3f) -> Float
fraction of facets visible from both w0
and w1
Read more
fn pdf(&self, wo: Vector3f, wh: Vector3f) -> Float
given wo
and a sampled wh
, returns the pdf of this sample