Blender
V3.3
|
#include "kernel/geom/geom.h"
#include "kernel/light/background.h"
#include "kernel/sample/mapping.h"
Go to the source code of this file.
Classes | |
struct | LightSample |
Typedefs | |
typedef CCL_NAMESPACE_BEGIN struct LightSample | LightSample |
typedef CCL_NAMESPACE_BEGIN struct LightSample LightSample |
ccl_device int light_distribution_sample | ( | KernelGlobals | kg, |
ccl_private float * | randu | ||
) |
Definition at line 846 of file kernel/light/light.h.
References blender::math::clamp(), kernel_data, kernel_data_fetch, len, and r.
Referenced by light_distribution_sample().
ccl_device_noinline bool light_distribution_sample | ( | KernelGlobals | kg, |
float | randu, | ||
const float | randv, | ||
const float | time, | ||
const float3 | P, | ||
const int | bounce, | ||
const uint32_t | path_flag, | ||
ccl_private LightSample * | ls | ||
) |
Definition at line 890 of file kernel/light/light.h.
References ccl_global, kernel_data_fetch, lamp, light_distribution_sample(), light_select_reached_max_bounces(), P(), PATH_RAY_SHADOW_CATCHER_PASS, SD_OBJECT_SHADOW_CATCHER, time, and UNLIKELY.
ccl_device_inline bool light_distribution_sample_from_position | ( | KernelGlobals | kg, |
float | randu, | ||
const float | randv, | ||
const float | time, | ||
const float3 | P, | ||
const int | bounce, | ||
const uint32_t | path_flag, | ||
ccl_private LightSample * | ls | ||
) |
Definition at line 942 of file kernel/light/light.h.
ccl_device_inline bool light_distribution_sample_from_volume_segment | ( | KernelGlobals | kg, |
float | randu, | ||
const float | randv, | ||
const float | time, | ||
const float3 | P, | ||
const int | bounce, | ||
const uint32_t | path_flag, | ||
ccl_private LightSample * | ls | ||
) |
Definition at line 930 of file kernel/light/light.h.
ccl_device_inline bool light_distribution_sample_new_position | ( | KernelGlobals | kg, |
const float | randu, | ||
const float | randv, | ||
const float | time, | ||
const float3 | P, | ||
ccl_private LightSample * | ls | ||
) |
Definition at line 954 of file kernel/light/light.h.
References LIGHT_TRIANGLE, P(), and time.
ccl_device_inline bool light_sample | ( | KernelGlobals | kg, |
const int | lamp, | ||
const float | randu, | ||
const float | randv, | ||
const float3 | P, | ||
const uint32_t | path_flag, | ||
ccl_private LightSample * | ls | ||
) |
Definition at line 33 of file kernel/light/light.h.
References ccl_global, center, D(), disk_light_sample(), distant_light_sample(), blender::math::dot(), ellipse_sample(), fabsf, kernel_data, kernel_data_fetch, lamp, lamp_light_pdf(), lamp_lightgroup(), LIGHT_BACKGROUND, LIGHT_DISTANT, LIGHT_POINT, LIGHT_SPOT, light_spread_attenuation(), light_spread_clamp_area_light(), M_1_PI_F, make_float3, map_to_sphere(), blender::math::normalize(), normalize_len(), P(), PATH_RAY_SHADOW_CATCHER_PASS, PRIM_NONE, rect_light_sample(), SHADER_EXCLUDE_SHADOW_CATCHER, spot_light_attenuation(), type, float2::x, float2::y, and zero_float3().
ccl_device bool light_sample_from_distant_ray | ( | KernelGlobals | kg, |
const float3 | ray_D, | ||
const int | lamp, | ||
ccl_private LightSample *ccl_restrict | ls | ||
) |
Definition at line 367 of file kernel/light/light.h.
References ccl_global, blender::math::dot(), if(), kernel_data, kernel_data_fetch, lamp, lamp_lightgroup(), LIGHT_DISTANT, make_float3, PRIM_NONE, SHADER_USE_MIS, and type.
Referenced by integrate_distant_lights().
ccl_device bool light_sample_from_intersection | ( | KernelGlobals | kg, |
ccl_private const Intersection *ccl_restrict | isect, | ||
const float3 | ray_P, | ||
const float3 | ray_D, | ||
ccl_private LightSample *ccl_restrict | ls | ||
) |
Definition at line 440 of file kernel/light/light.h.
References ccl_global, center, fabsf, kernel_assert, kernel_data, kernel_data_fetch, lamp, lamp_light_pdf(), lamp_lightgroup(), LIGHT_AREA, LIGHT_POINT, LIGHT_SPOT, light_spread_attenuation(), light_spread_clamp_area_light(), M_1_PI_F, make_float3, map_to_sphere(), blender::math::normalize(), rect_light_sample(), spot_light_attenuation(), type, float2::x, and float2::y.
Referenced by integrate_light().
ccl_device_inline bool light_select_reached_max_bounces | ( | KernelGlobals | kg, |
int | index, | ||
int | bounce | ||
) |
Definition at line 884 of file kernel/light/light.h.
References kernel_data_fetch.
Referenced by light_distribution_sample().
ccl_device bool lights_intersect | ( | KernelGlobals | kg, |
IntegratorState | state, | ||
ccl_private const Ray *ccl_restrict | ray, | ||
ccl_private Intersection *ccl_restrict | isect, | ||
const int | last_prim, | ||
const int | last_object, | ||
const int | last_type, | ||
const uint32_t | path_flag | ||
) |
Definition at line 234 of file kernel/light/light.h.
References ccl_global, blender::math::dot(), fabsf, if(), INTEGRATOR_STATE, kernel_data, kernel_data_fetch, lamp, LIGHT_AREA, LIGHT_POINT, LIGHT_SPOT, make_float3, blender::math::normalize(), OBJECT_NONE, P(), PATH_MNEE_CULL_LIGHT_CONNECTION, PATH_RAY_CAMERA, PATH_RAY_SHADOW_CATCHER_PASS, PRIM_NONE, PRIMITIVE_LAMP, ray_disk_intersect(), ray_quad_intersect(), SHADER_EXCLUDE_CAMERA, SHADER_EXCLUDE_SHADOW_CATCHER, SHADER_USE_MIS, state, t, type, and v.
Referenced by integrator_intersect_closest().
ccl_device_forceinline float triangle_light_pdf | ( | KernelGlobals | kg, |
ccl_private const ShaderData * | sd, | ||
float | t | ||
) |
Definition at line 615 of file kernel/light/light.h.
References blender::compositor::area(), beta(), blender::math::cross(), blender::math::dot(), fabsf, fast_acosf(), kernel_data, len, len_squared(), M_PI_F, max, N, safe_normalize(), t, triangle_area(), triangle_light_pdf_area(), triangle_world_space_vertices(), UNLIKELY, and V.
ccl_device_inline float triangle_light_pdf_area | ( | KernelGlobals | kg, |
const float3 | Ng, | ||
const float3 | I, | ||
float | t | ||
) |
Definition at line 601 of file kernel/light/light.h.
References blender::math::dot(), fabsf, I, kernel_data, and t.
Referenced by triangle_light_pdf(), and triangle_light_sample().
ccl_device_forceinline void triangle_light_sample | ( | KernelGlobals | kg, |
int | prim, | ||
int | object, | ||
float | randu, | ||
float | randv, | ||
float | time, | ||
ccl_private LightSample * | ls, | ||
const float3 | P | ||
) |
Definition at line 687 of file kernel/light/light.h.
References A, blender::compositor::area(), B, beta(), C, blender::math::cross(), blender::math::dot(), fabsf, fast_acosf(), fast_sincosf(), fast_sinf(), kernel_data, kernel_data_fetch, LAMP_NONE, len_squared(), LIGHT_TRIANGLE, M_PI_F, max, normalize_len(), object_lightgroup(), P(), ray_triangle_intersect(), safe_normalize(), safe_normalize_len(), safe_sqrtf(), SD_OBJECT_NEGATIVE_SCALE_APPLIED, SHADER_USE_MIS, sqrtf, t, time, triangle_area(), triangle_light_pdf_area(), triangle_world_space_vertices(), UNLIKELY, V, v, and z.
ccl_device_inline bool triangle_world_space_vertices | ( | KernelGlobals | kg, |
int | object, | ||
int | prim, | ||
float | time, | ||
float3 | V[3] | ||
) |
Definition at line 572 of file kernel/light/light.h.
References kernel_data_fetch, motion_triangle_vertices(), NULL, object_fetch_transform(), OBJECT_TRANSFORM, SD_OBJECT_HAS_VERTEX_MOTION, SD_OBJECT_TRANSFORM_APPLIED, time, transform_point(), triangle_vertices(), and V.
Referenced by triangle_light_pdf(), and triangle_light_sample().