Blender V4.5
mapping.h File Reference
#include "util/math.h"
#include "util/projection.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device float2 sample_uniform_disk (const float2 rand)
ccl_device void make_orthonormals_tangent (const float3 N, const float3 T, ccl_private float3 *a, ccl_private float3 *b)
ccl_device void make_orthonormals_safe_tangent (const float3 N, const float3 T, ccl_private float3 *a, ccl_private float3 *b)
ccl_device_inline void sample_cos_hemisphere (const float3 N, const float2 rand_in, ccl_private float3 *wo, ccl_private float *pdf)
ccl_device_inline float pdf_cos_hemisphere (const float3 N, const float3 D)
ccl_device_inline void sample_uniform_hemisphere (const float3 N, const float2 rand, ccl_private float3 *wo, ccl_private float *pdf)
ccl_device_inline float pdf_uniform_cone (const float3 N, const float3 D, const float angle)
ccl_device_inline float3 sample_uniform_cone (const float3 N, const float one_minus_cos_angle, const float2 rand, ccl_private float *cos_theta, ccl_private float *pdf)
ccl_device float3 sample_uniform_sphere (const float2 rand)
ccl_device float2 regular_polygon_sample (const float corners, float rotation, const float2 rand)

Function Documentation

◆ make_orthonormals_safe_tangent()

ccl_device void make_orthonormals_safe_tangent ( const float3 N,
const float3 T,
ccl_private float3 * a,
ccl_private float3 * b )

Definition at line 51 of file sample/mapping.h.

References b, ccl_device, ccl_private, cross, len_squared(), make_orthonormals(), N, safe_normalize(), and T.

Referenced by bsdf_sheen_setup().

◆ make_orthonormals_tangent()

ccl_device void make_orthonormals_tangent ( const float3 N,
const float3 T,
ccl_private float3 * a,
ccl_private float3 * b )

◆ pdf_cos_hemisphere()

ccl_device_inline float pdf_cos_hemisphere ( const float3 N,
const float3 D )

Definition at line 82 of file sample/mapping.h.

References ccl_device_inline, cos_theta(), D, dot(), M_1_PI_F, and N.

Referenced by sphere_light_pdf(), and spot_light_pdf().

◆ pdf_uniform_cone()

ccl_device_inline float pdf_uniform_cone ( const float3 N,
const float3 D,
const float angle )

Definition at line 107 of file sample/mapping.h.

References angle(), ccl_device_inline, D, M_1_2PI_F, N, one_minus_cos(), precise_angle(), and z().

Referenced by background_sun_pdf().

◆ regular_polygon_sample()

ccl_device float2 regular_polygon_sample ( const float corners,
float rotation,
const float2 rand )

Definition at line 184 of file sample/mapping.h.

References angle(), ccl_device, cosf, floorf, M_PI_F, make_float2(), sinf, sqrtf, v, float2::x, and float2::y.

Referenced by camera_sample_aperture().

◆ sample_cos_hemisphere()

◆ sample_uniform_cone()

◆ sample_uniform_disk()

◆ sample_uniform_hemisphere()

ccl_device_inline void sample_uniform_hemisphere ( const float3 N,
const float2 rand,
ccl_private float3 * wo,
ccl_private float * pdf )

◆ sample_uniform_sphere()