Blender V4.3
mapping.h File Reference

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, 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, float3 D, 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 (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 46 of file sample/mapping.h.

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

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 76 of file sample/mapping.h.

References cos_theta(), dot(), and N.

Referenced by sphere_light_pdf(), and spot_light_pdf().

◆ pdf_uniform_cone()

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

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

References N, one_minus_cos(), precise_angle(), and z().

Referenced by background_sun_pdf().

◆ regular_polygon_sample()

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

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

References angle(), 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()

ccl_device float3 sample_uniform_sphere ( const float2 rand)