Blender  V3.3
Functions
common.h File Reference
#include "kernel/sample/mapping.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline float rect_light_sample (float3 P, ccl_private float3 *light_p, float3 axisu, float3 axisv, float randu, float randv, bool sample_coord)
 
ccl_device_inline float3 ellipse_sample (float3 ru, float3 rv, float randu, float randv)
 
ccl_device float3 disk_light_sample (float3 v, float randu, float randv)
 
ccl_device float3 distant_light_sample (float3 D, float radius, float randu, float randv)
 
ccl_device float3 sphere_light_sample (float3 P, float3 center, float radius, float randu, float randv)
 
ccl_device float spot_light_attenuation (float3 dir, float spot_angle, float spot_smooth, float3 N)
 
ccl_device float light_spread_attenuation (const float3 D, const float3 lightNg, const float tan_spread, const float normalize_spread)
 
ccl_device bool light_spread_clamp_area_light (const float3 P, const float3 lightNg, ccl_private float3 *lightP, ccl_private float3 *axisu, ccl_private float3 *axisv, const float tan_spread)
 
ccl_device float lamp_light_pdf (KernelGlobals kg, const float3 Ng, const float3 I, float t)
 

Function Documentation

◆ disk_light_sample()

ccl_device float3 disk_light_sample ( float3  v,
float  randu,
float  randv 
)

Definition at line 103 of file common.h.

References ellipse_sample(), make_orthonormals(), and v.

Referenced by distant_light_sample(), light_sample(), and sphere_light_sample().

◆ distant_light_sample()

ccl_device float3 distant_light_sample ( float3  D,
float  radius,
float  randu,
float  randv 
)

Definition at line 112 of file common.h.

References D(), disk_light_sample(), and blender::math::normalize().

Referenced by light_sample().

◆ ellipse_sample()

ccl_device_inline float3 ellipse_sample ( float3  ru,
float3  rv,
float  randu,
float  randv 
)

Definition at line 97 of file common.h.

References to_unit_disk().

Referenced by disk_light_sample(), and light_sample().

◆ lamp_light_pdf()

ccl_device float lamp_light_pdf ( KernelGlobals  kg,
const float3  Ng,
const float3  I,
float  t 
)

Definition at line 204 of file common.h.

References blender::math::dot(), I, and t.

Referenced by light_sample(), and light_sample_from_intersection().

◆ light_spread_attenuation()

ccl_device float light_spread_attenuation ( const float3  D,
const float3  lightNg,
const float  tan_spread,
const float  normalize_spread 
)

Definition at line 140 of file common.h.

References D(), blender::math::dot(), max, safe_sqrtf(), and sqr().

Referenced by light_sample(), and light_sample_from_intersection().

◆ light_spread_clamp_area_light()

ccl_device bool light_spread_clamp_area_light ( const float3  P,
const float3  lightNg,
ccl_private float3 lightP,
ccl_private float3 axisu,
ccl_private float3 axisv,
const float  tan_spread 
)

Definition at line 155 of file common.h.

References blender::math::dot(), len, max, min, normalize_len(), P(), t, and v.

Referenced by light_sample(), and light_sample_from_intersection().

◆ rect_light_sample()

CCL_NAMESPACE_BEGIN ccl_device_inline float rect_light_sample ( float3  P,
ccl_private float3 light_p,
float3  axisu,
float3  axisv,
float  randu,
float  randv,
bool  sample_coord 
)

◆ sphere_light_sample()

ccl_device float3 sphere_light_sample ( float3  P,
float3  center,
float  radius,
float  randu,
float  randv 
)

Definition at line 118 of file common.h.

References center, disk_light_sample(), blender::math::normalize(), and P().

◆ spot_light_attenuation()

ccl_device float spot_light_attenuation ( float3  dir,
float  spot_angle,
float  spot_smooth,
float3  N 
)

Definition at line 123 of file common.h.

References blender::math::dot(), N, smoothstepf(), and t.

Referenced by light_sample(), and light_sample_from_intersection().