cz.cuni.jagrlib.iface
Interface MicrofacetDistribution

All Known Implementing Classes:
AnisotropicMicrofacet, BlinnMicrofacet

public interface MicrofacetDistribution

Abstract interface represents microfacet distribution. Microfacets help to model rough surfaces as a heightfield with statistically generated faces.

Since:
0.26
See Also:
MicrofacetDistribution.java

Method Summary
 double D(double[] half)
          Return a microfacet distribution term.
 double pdf(double[] in, double[] out)
          Return the probability density function.
 double sample(MicroFacet mf, double[] in, double u, double v, double[] out, double[] brdf)
          Sample the given microfacet distribution.
 

Method Detail

sample

double sample(MicroFacet mf,
              double[] in,
              double u,
              double v,
              double[] out,
              double[] brdf)
Sample the given microfacet distribution.

Parameters:
mf - The MicroFacet (point on surface of some solid).
in - Input direction (should look from the hit point).
u - Random uniform number.
v - Random uniform numbers.
out - Output direction in world coordinates.
brdf - Color definition - double[C] array (C can be either 1 /for monochrome computing/, 3 /for RGB color system/ or greater /for more complex spectral color sampling/).
Returns:
Probability density function.

pdf

double pdf(double[] in,
           double[] out)
Return the probability density function.

Parameters:
in - Input direction in local coordinates.
out - Output direction in local coordinates.

D

double D(double[] half)
Return a microfacet distribution term.

Parameters:
half - Half-vector in local coordinates.