|
Blender
V2.93
|
#include "kernel_light_background.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 bool lamp_light_eval | ( | KernelGlobals * | kg, |
| int | lamp, | ||
| float3 | P, | ||
| float3 | D, | ||
| float | t, | ||
| LightSample * | ls | ||
| ) |
Definition at line 179 of file kernel_light.h.
References ccl_global, LightSample::D, D(), dot(), LightSample::eval_fac, fabsf, if(), kernel_data, kernel_tex_fetch, kg, LightSample::lamp, lamp, lamp_light_pdf(), LIGHT_AREA, LIGHT_DISTANT, LIGHT_POINT, LIGHT_SPOT, light_spread_attenuation(), light_spread_clamp_area_light(), M_1_PI_F, make_float3, map_to_sphere(), LightSample::Ng, LightSample::object, LightSample::P, P(), LightSample::pdf, LightSample::prim, PRIM_NONE, ray_aligned_disk_intersect(), ray_quad_intersect(), rect_light_sample(), LightSample::shader, SHADER_USE_MIS, spot_light_attenuation(), LightSample::t, t, LightSample::type, type, LightSample::u, LightSample::v, float2::x, and float2::y.
Referenced by indirect_lamp_emission().
| ccl_device_inline bool lamp_light_sample | ( | KernelGlobals * | kg, |
| int | lamp, | ||
| float | randu, | ||
| float | randv, | ||
| float3 | P, | ||
| LightSample * | ls | ||
| ) |
Definition at line 40 of file kernel_light.h.
References ccl_global, LightSample::D, D(), distant_light_sample(), dot(), ellipse_sample(), LightSample::eval_fac, fabsf, if(), kernel_data, kernel_tex_fetch, kg, LightSample::lamp, lamp, lamp_light_pdf(), 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(), LightSample::Ng, normalize_len(), LightSample::object, LightSample::P, P(), LightSample::pdf, LightSample::prim, PRIM_NONE, rect_light_sample(), LightSample::shader, sphere_light_sample(), spot_light_attenuation(), LightSample::t, LightSample::type, type, LightSample::u, LightSample::v, float2::x, and float2::y.
Referenced by light_sample().
| ccl_device int light_distribution_sample | ( | KernelGlobals * | kg, |
| float * | randu | ||
| ) |
Definition at line 620 of file kernel_light.h.
References clamp(), kernel_data, kernel_tex_fetch, len, and r.
Referenced by light_sample().
| ccl_device_noinline bool light_sample | ( | KernelGlobals * | kg, |
| int | lamp, | ||
| float | randu, | ||
| float | randv, | ||
| float | time, | ||
| float3 | P, | ||
| int | bounce, | ||
| LightSample * | ls | ||
| ) |
Definition at line 663 of file kernel_light.h.
References ccl_global, kernel_tex_fetch, kg, lamp, lamp_light_sample(), light_distribution_sample(), light_select_reached_max_bounces(), P(), LightSample::pdf, LightSample::shader, time, triangle_light_sample(), and UNLIKELY.
Referenced by kernel_direct_lighting(), and kernel_path_surface_connect_light().
| ccl_device_inline int light_select_num_samples | ( | KernelGlobals * | kg, |
| int | index | ||
| ) |
Definition at line 700 of file kernel_light.h.
References kernel_tex_fetch.
| ccl_device_inline bool light_select_reached_max_bounces | ( | KernelGlobals * | kg, |
| int | index, | ||
| int | bounce | ||
| ) |
Definition at line 658 of file kernel_light.h.
References kernel_tex_fetch.
Referenced by light_sample().
| ccl_device_forceinline float triangle_light_pdf | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| float | t | ||
| ) |
Definition at line 382 of file kernel_light.h.
References alpha, blender::compositor::area(), beta(), cross(), dot(), fabsf, fast_acosf(), kernel_data, kg, len, len_squared(), M_PI_F, max, N, safe_normalize(), t, triangle_area(), triangle_light_pdf_area(), triangle_world_space_vertices(), UNLIKELY, and V.
Referenced by indirect_primitive_emission().
| ccl_device_inline float triangle_light_pdf_area | ( | KernelGlobals * | kg, |
| const float3 | Ng, | ||
| const float3 | I, | ||
| float | t | ||
| ) |
Definition at line 368 of file kernel_light.h.
References 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, | ||
| LightSample * | ls, | ||
| const float3 | P | ||
| ) |
Definition at line 451 of file kernel_light.h.
References A, alpha, blender::compositor::area(), B, beta(), C, cross(), LightSample::D, dot(), LightSample::eval_fac, fabsf, fast_acosf(), fast_sincosf(), fast_sinf(), kernel_data, kernel_tex_fetch, kg, LightSample::lamp, LAMP_NONE, len_squared(), LIGHT_TRIANGLE, M_PI_F, max, LightSample::Ng, normalize_len(), LightSample::object, LightSample::P, P(), LightSample::pdf, LightSample::prim, ray_triangle_intersect(), safe_normalize(), safe_normalize_len(), safe_sqrtf(), SD_OBJECT_NEGATIVE_SCALE_APPLIED, LightSample::shader, SHADER_USE_MIS, sqrtf, LightSample::t, t, time, triangle_area(), triangle_light_pdf_area(), triangle_world_space_vertices(), LightSample::type, LightSample::u, UNLIKELY, LightSample::v, V, v, and z.
Referenced by light_sample().
| ccl_device_inline bool triangle_world_space_vertices | ( | KernelGlobals * | kg, |
| int | object, | ||
| int | prim, | ||
| float | time, | ||
| float3 | V[3] | ||
| ) |
Definition at line 339 of file kernel_light.h.
References kernel_tex_fetch, kg, 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().