file
sampling.hRandom sampling on various domains.
Global RNG and rejection sampling
- auto randf() -> float
- Global random number generator that produces floats between
[0,1)
- auto random_in_unit_sphere() -> Vec3f
- Sample a random point uniformly within a unit sphere (uses the global randf() RNG and rejection sampling)
- auto random_in_unit_disk() -> Vec2f
- Sample a random point uniformly within a unit disk (uses the global randf() RNG and rejection sampling)
Sampling a circle and disk
- auto sample_circle(float rv) -> Vec2f
- Uniformly sample a point on a unit circle, centered at the origin.
- auto sample_circle_pdf() -> float
- Probability density of sample_
circle() - auto sample_disk(const Vec2f& rv) -> Vec2f
- Uniformly sample a vector on a 2D disk with radius 1, centered around the origin.
- auto sample_disk_pdf(const Vec2f& p) -> float
- Probability density of sample_
disk()
Sampling a sphere or a ball
- auto sample_sphere(const Vec2f& rv) -> Vec3f
- Uniformly sample a vector on the unit 3D sphere with respect to solid angles.
- auto sample_sphere_pdf() -> float
- Probability density of sample_
sphere() - auto sample_4sphere(const Vec4f& rv) -> Vec4f
- Uniformly sample a vector on a unit 4-dimensional hypersphere using Marsaglia's (1972) method.
- auto sample_4sphere_pdf() -> float
- Probability density of sample_
4sphere()
Sampling the hemisphere
- auto sample_hemisphere(const Vec2f& rv) -> Vec3f
- Uniformly sample a vector on the unit hemisphere around the pole (0,0,1) with respect to solid angles.
- auto sample_hemisphere_pdf(const Vec3f& v) -> float
- Probability density of sample_
hemisphere() - auto sample_hemisphere_cosine(const Vec2f& rv) -> Vec3f
- Uniformly sample a vector on the unit hemisphere around the pole (0,0,1) with respect to projected solid angles.
- auto sample_hemisphere_cosine_pdf(const Vec3f& v) -> float
- Probability density of sample_
hemisphere_ cosine() - auto sample_hemisphere_cosine_power(float exponent, const Vec2f& rv) -> Vec3f
- Sample a vector on the unit hemisphere with a cosine-power density about the pole (0,0,1)
- auto sample_hemisphere_cosine_power_pdf(float exponent, float cosine) -> float
- Probability density of sample_
hemisphere_ cosine_ power()