20 #if !defined(__MITSUBA_CORE_WARP_H_)
21 #define __MITSUBA_CORE_WARP_H_
56 {
return INV_PI * Frame::cosTheta(d); }
Float squareToUniformDiskConcentricPdf()
Density of squareToUniformDisk per unit area.
Definition: warp.h:98
Point2 uniformDiskToSquareConcentric(const Point2 &p)
Inverse of the mapping squareToUniformDiskConcentric.
Point2 squareToStdNormal(const Point2 &sample)
Sample a point on a 2D standard normal distribution.
Float squareToUniformHemispherePdf()
Density of squareToUniformHemisphere() with respect to solid angles.
Definition: warp.h:49
Float squareToUniformConePdf(Float cosCutoff)
Uniformly sample a vector that lies within a given cone of angles around the Z axis.
Definition: warp.h:74
#define MTS_EXPORT_CORE
Definition: getopt.h:29
Point2 squareToUniformDisk(const Point2 &sample)
Uniformly sample a vector on a 2D disk.
Float squareToUniformSpherePdf()
Density of squareToUniformSphere() with respect to solid angles.
Definition: warp.h:43
Float intervalToNonuniformTent(Float a, Float b, Float c, Float sample)
Warp a uniformly distributed sample on [0, 1] to a nonuniform tent distribution with nodes {a...
Float squareToStdNormalPdf(const Point2 &pos)
Density of squareToStdNormal per unit area.
#define INV_FOURPI
Definition: constants.h:93
Point2 squareToUniformTriangle(const Point2 &sample)
Convert an uniformly distributed square sample into barycentric coordinates.
#define INV_PI
Definition: constants.h:91
#define INV_TWOPI
Definition: constants.h:92
Float squareToCosineHemispherePdf(const Vector &d)
Density of squareToCosineHemisphere() with respect to solid angles.
Definition: warp.h:55
Vector squareToUniformHemisphere(const Point2 &sample)
Uniformly sample a vector on the unit hemisphere with respect to solid angles.
Float squareToUniformDiskPdf()
Density of squareToUniformDisk per unit area.
Definition: warp.h:89
Vector squareToCosineHemisphere(const Point2 &sample)
Sample a cosine-weighted vector on the unit hemisphere with respect to solid angles.
Vector squareToUniformSphere(const Point2 &sample)
Uniformly sample a vector on the unit sphere with respect to solid angles.
Point2 squareToTent(const Point2 &sample)
Warp a uniformly distributed square sample to a 2D tent distribution.
Vector squareToUniformCone(Float cosCutoff, const Point2 &sample)
Uniformly sample a vector that lies within a given cone of angles around the Z axis.
Point2 squareToUniformDiskConcentric(const Point2 &sample)
Low-distortion concentric square to disk mapping by Peter Shirley (PDF: 1/PI)