|
Blender V5.0
|
#include "kernel/globals.h"#include "kernel/geom/object.h"#include "kernel/light/common.h"#include "util/math_intersect.h"Go to the source code of this file.
| ccl_device_inline bool point_light_intersect | ( | const ccl_global KernelLight * | klight, |
| const ccl_private Ray *ccl_restrict | ray, | ||
| ccl_private float * | t ) |
Definition at line 138 of file light/point.h.
References ccl_device_inline, ccl_global, ccl_private, ccl_restrict, normalize, P, ray_disk_intersect(), and ray_sphere_intersect().
Referenced by lights_intersect_impl(), and spot_light_intersect().
| ccl_device_forceinline void point_light_mnee_sample_update | ( | KernelGlobals | kg, |
| const ccl_global KernelLight * | klight, | ||
| ccl_private LightSample * | ls, | ||
| const float3 | P, | ||
| const float3 | N, | ||
| const uint32_t | path_flag ) |
Definition at line 100 of file light/point.h.
References ccl_device_forceinline, ccl_global, ccl_private, fabsf, lamp_get_inverse_transform(), len_squared(), M_PI_F, map_to_sphere(), N, normalize, P, safe_normalize_len(), sphere_light_pdf(), sqr, transform_direction(), float2::x, and float2::y.
Referenced by light_sample_update().
| CCL_NAMESPACE_BEGIN ccl_device_inline bool point_light_sample | ( | KernelGlobals | kg, |
| const ccl_global KernelLight * | klight, | ||
| const float2 | rand, | ||
| const float3 | P, | ||
| const float3 | N, | ||
| const int | shader_flags, | ||
| ccl_private LightSample * | ls ) |
Definition at line 17 of file light/point.h.
References ccl_device_inline, ccl_global, ccl_private, copysignf, cos_theta(), disk_light_sample(), dot(), lamp_get_inverse_transform(), len_squared(), light_pdf_area_to_solid_angle(), M_1_2PI_F, M_PI_F, map_to_sphere(), N, normalize, one_minus_cos(), P, safe_normalize_len(), safe_sqrtf(), sample_cos_hemisphere(), sample_uniform_cone(), sample_uniform_sphere(), SD_BSDF_HAS_TRANSMISSION, sin_sqr_to_one_minus_cos(), sqr, sqrtf, transform_direction(), float2::x, and float2::y.
Referenced by light_sample().
| ccl_device_inline bool point_light_sample_from_intersection | ( | KernelGlobals | kg, |
| const ccl_global KernelLight * | klight, | ||
| const float3 | ray_P, | ||
| const float3 | ray_D, | ||
| const float3 | N, | ||
| const uint32_t | path_flag, | ||
| ccl_private LightSample *ccl_restrict | ls ) |
Definition at line 158 of file light/point.h.
References ccl_device_inline, ccl_global, ccl_private, ccl_restrict, FLT_MAX, lamp_get_inverse_transform(), len_squared(), light_pdf_area_to_solid_angle(), M_PI_F, map_to_sphere(), N, normalize, sphere_light_pdf(), sqr, transform_direction(), float2::x, and float2::y.
Referenced by light_sample_from_intersection().
| ccl_device_forceinline bool point_light_tree_parameters | ( | const ccl_global KernelLight * | klight, |
| const float3 | centroid, | ||
| const float3 | P, | ||
| ccl_private float & | cos_theta_u, | ||
| ccl_private float2 & | distance, | ||
| ccl_private float3 & | point_to_centroid ) |
Definition at line 199 of file light/point.h.
References ccl_device_forceinline, ccl_global, ccl_private, cos_from_sin(), distance(), M_SQRT2_F, one_float2(), P, safe_normalize_len(), sqr, and sqrtf.
Referenced by light_tree_emitter_importance().
| ccl_device_forceinline float sphere_light_pdf | ( | const float | d_sq, |
| const float | r_sq, | ||
| const float3 | N, | ||
| const float3 | D, | ||
| const uint32_t | path_flag ) |
Definition at line 89 of file light/point.h.
References ccl_device_forceinline, D, M_1_2PI_F, N, PATH_RAY_MIS_HAD_TRANSMISSION, pdf_cos_hemisphere(), and sin_sqr_to_one_minus_cos().
Referenced by point_light_mnee_sample_update(), and point_light_sample_from_intersection().