Blender  V2.93
Functions
kernel_light_common.h File Reference

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline float rect_light_sample (float3 P, 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, float3 *lightP, float3 *axisu, 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 112 of file kernel_light_common.h.

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

Referenced by distant_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 121 of file kernel_light_common.h.

References D(), disk_light_sample(), and normalize().

Referenced by lamp_light_sample().

◆ ellipse_sample()

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

Definition at line 106 of file kernel_light_common.h.

References to_unit_disk().

Referenced by disk_light_sample(), and lamp_light_sample().

◆ lamp_light_pdf()

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

Definition at line 213 of file kernel_light_common.h.

References dot(), I, and t.

Referenced by lamp_light_eval(), and lamp_light_sample().

◆ 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 149 of file kernel_light_common.h.

References D(), dot(), max, safe_sqrtf(), and sqr().

Referenced by lamp_light_eval(), and lamp_light_sample().

◆ light_spread_clamp_area_light()

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

Definition at line 164 of file kernel_light_common.h.

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

Referenced by lamp_light_eval(), and lamp_light_sample().

◆ rect_light_sample()

CCL_NAMESPACE_BEGIN ccl_device_inline float rect_light_sample ( float3  P,
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 127 of file kernel_light_common.h.

References center, disk_light_sample(), normalize(), and P().

Referenced by lamp_light_sample().

◆ spot_light_attenuation()

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

Definition at line 132 of file kernel_light_common.h.

References dot(), N, smoothstepf(), and t.

Referenced by lamp_light_eval(), and lamp_light_sample().