|
Blender V4.3
|
#include "kernel/light/common.h"Go to the source code of this file.
| ccl_device_inline bool area_light_eval | ( | const ccl_global KernelLight * | klight, |
| const float3 | ray_P, | ||
| ccl_private float3 * | light_P, | ||
| ccl_private LightSample *ccl_restrict | ls, | ||
| const float2 | rand, | ||
| bool | sample_coord ) |
Definition at line 246 of file area.h.
References area_light_rect_sample(), area_light_spread_attenuation(), area_light_spread_clamp_light(), ellipse_sample(), fabsf, light_pdf_area_to_solid_angle(), normalize_len(), and rectangle_sample().
Referenced by area_light_mnee_sample_update(), area_light_sample(), and area_light_sample_from_intersection().
| ccl_device_inline bool area_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 ) |
Definition at line 390 of file area.h.
References area_light_is_ellipse(), dot(), fabsf, P, ray_quad_intersect(), and v.
Referenced by lights_intersect_impl().
| ccl_device_forceinline bool area_light_is_ellipse | ( | const ccl_global KernelAreaLight * | light | ) |
Definition at line 238 of file area.h.
Referenced by area_light_intersect(), area_light_max_extent(), area_light_sample(), and area_light_valid_ray_segment().
| ccl_device_forceinline float area_light_max_extent | ( | const ccl_global KernelAreaLight * | light | ) |
Definition at line 447 of file area.h.
References area_light_is_ellipse(), fmaxf, len, and make_float2().
Referenced by area_light_valid_ray_segment().
| ccl_device_forceinline void area_light_mnee_sample_update | ( | const ccl_global KernelLight * | klight, |
| ccl_private LightSample * | ls, | ||
| const float3 | P ) |
Definition at line 374 of file area.h.
References area_light_eval(), light_pdf_area_to_solid_angle(), normalize_len(), P, and zero_float2().
Referenced by light_sample_update().
| CCL_NAMESPACE_BEGIN ccl_device_inline float area_light_rect_sample | ( | float3 | P, |
| ccl_private float3 * | light_p, | ||
| const float3 | axis_u, | ||
| const float | len_u, | ||
| const float3 | axis_v, | ||
| const float | len_v, | ||
| const float2 | rand, | ||
| bool | sample_coord ) |
Definition at line 17 of file area.h.
References au, clamp(), copysignf, cosf, cross(), dot(), len, make_float4(), max, P, reduce_min(), safe_asinf(), sinf, sqr(), sqrt(), sqrtf, float2::x, float2::y, and z().
Referenced by area_light_eval(), background_portal_pdf(), and background_portal_sample().
| ccl_device_inline bool area_light_sample | ( | const ccl_global KernelLight * | klight, |
| const float2 | rand, | ||
| const float3 | P, | ||
| ccl_private LightSample * | ls ) |
Definition at line 325 of file area.h.
References area_light_eval(), area_light_is_ellipse(), dot(), fabsf, P, and sqr().
Referenced by light_sample().
| ccl_device_inline bool area_light_sample_from_intersection | ( | const ccl_global KernelLight * | klight, |
| ccl_private const Intersection *ccl_restrict | isect, | ||
| const float3 | ray_P, | ||
| const float3 | ray_D, | ||
| ccl_private LightSample *ccl_restrict | ls ) |
Definition at line 430 of file area.h.
References area_light_eval(), and zero_float2().
Referenced by light_sample_from_intersection().
| ccl_device float area_light_spread_attenuation | ( | const float3 | D, |
| const float3 | lightNg, | ||
| const float | tan_half_spread, | ||
| const float | normalize_spread ) |
Definition at line 102 of file area.h.
References M_PI_F, max, and tan_angle().
Referenced by area_light_eval().
| ccl_device bool area_light_spread_clamp_light | ( | const float3 | P, |
| const float3 | lightNg, | ||
| ccl_private float3 * | lightP, | ||
| ccl_private float3 * | axis_u, | ||
| ccl_private float * | len_u, | ||
| ccl_private float3 * | axis_v, | ||
| ccl_private float * | len_v, | ||
| const float | tan_half_spread, | ||
| ccl_private bool * | sample_rectangle ) |
Definition at line 121 of file area.h.
References dot(), fabsf, FLT_MAX, fminf, len, M_PI_2_F, M_PI_F, make_float2(), max, min, normalize(), P, rotate_around_axis(), sqr(), and sqrtf.
Referenced by area_light_eval().
| ccl_device_forceinline bool area_light_tree_parameters | ( | const ccl_global KernelLight * | klight, |
| const float3 | centroid, | ||
| const float3 | P, | ||
| const float3 | N, | ||
| const float3 | bcone_axis, | ||
| ccl_private float & | cos_theta_u, | ||
| ccl_private float2 & | distance, | ||
| ccl_private float3 & | point_to_centroid ) |
Definition at line 496 of file area.h.
References dot(), fabsf, FLT_MAX, fmaxf, fminf, make_float2(), N, P, and safe_normalize_len().
Referenced by light_tree_emitter_importance().
| ccl_device_inline bool area_light_valid_ray_segment | ( | const ccl_global KernelAreaLight * | light, |
| float3 | P, | ||
| float3 | D, | ||
| ccl_private float2 * | t_range ) |
Definition at line 454 of file area.h.
References area_light_is_ellipse(), area_light_max_extent(), FLT_MAX, make_float3(), make_transform(), P, ray_aabb_intersect(), ray_cone_intersect(), ray_infinite_cylinder_intersect(), ray_plane_intersect(), sqr(), transform_direction(), and transform_point().