22 const float fac = klight->distant.half_inv_sin_half_angle /
len(D - klight->co);
40 klight->co, klight->distant.one_minus_cosangle, rand, &unused, &ls->pdf);
46 ls->eval_fac = klight->distant.eval_fac;
67 if (klight->distant.angle == 0.0f) {
71 if (
vector_angle(-klight->co, ray->D) > klight->distant.angle) {
88 const int shader = klight->shader_id;
97 if (klight->distant.angle == 0.0f) {
104 ls->shader = klight->shader_id;
107 if (
vector_angle(-klight->co, ray_D) > klight->distant.angle) {
113 ls->shader = klight->shader_id;
124 ls->pdf = klight->distant.pdf;
125 ls->eval_fac = klight->distant.eval_fac;
132template<
bool in_volume_segment>
141 if (in_volume_segment) {
154 point_to_centroid = -centroid;
ATTR_WARN_UNUSED_RESULT const BMVert * v
additional_info("compositor_sum_squared_difference_float_shared") .push_constant(Type output_img float dot(value.rgb, luminance_coefficients)") .define("LOAD(value)"
#define kernel_assert(cond)
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define kernel_data_fetch(name, index)
#define ccl_device_forceinline
#define ccl_device_inline
#define CCL_NAMESPACE_END
ccl_device_forceinline bool distant_light_tree_parameters(const float3 centroid, const float theta_e, const float t, ccl_private float &cos_theta_u, ccl_private float2 &distance, ccl_private float3 &point_to_centroid, ccl_private float &theta_d)
CCL_NAMESPACE_BEGIN ccl_device_inline void distant_light_uv(const ccl_global KernelLight *klight, const float3 D, ccl_private float *u, ccl_private float *v)
ccl_device_inline bool distant_light_sample(const ccl_global KernelLight *klight, const float2 rand, ccl_private LightSample *ls)
ccl_device bool distant_light_sample_from_intersection(KernelGlobals kg, const float3 ray_D, const int lamp, ccl_private LightSample *ccl_restrict ls)
ccl_device bool distant_light_intersect(const ccl_global KernelLight *klight, const ccl_private Ray *ccl_restrict ray, ccl_private float *t, ccl_private float *u, ccl_private float *v)
ccl_device_inline int lamp_lightgroup(KernelGlobals kg, int lamp)
ccl_device_inline float vector_angle(float3 a, float3 b)
ccl_device float fast_cosf(float x)
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_inline float3 float4_to_float3(const float4 a)