|
Blender V4.3
|
#include "kernel/geom/geom.h"Go to the source code of this file.
| ccl_device_forceinline float triangle_light_pdf | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd, | ||
| float | t ) |
Definition at line 52 of file light/triangle.h.
References B, cross(), dot(), fabsf, fast_atan2f(), kernel_data, len, len_squared(), max, N, safe_normalize(), triangle_area(), triangle_light_pdf_area_sampling(), triangle_world_space_vertices(), UNLIKELY, and V.
Referenced by light_sample_mis_weight_forward_surface().
| ccl_device_inline float triangle_light_pdf_area_sampling | ( | const float3 | Ng, |
| const float3 | I, | ||
| float | t ) |
Definition at line 41 of file light/triangle.h.
References dot(), fabsf, and I.
Referenced by triangle_light_pdf(), and triangle_light_sample().
| ccl_device_forceinline bool triangle_light_sample | ( | KernelGlobals | kg, |
| int | prim, | ||
| int | object, | ||
| const float2 | rand, | ||
| float | time, | ||
| ccl_private LightSample * | ls, | ||
| const float3 | P ) |
Definition at line 119 of file light/triangle.h.
References B, cross(), dot(), fabsf, fast_atan2f(), fast_sincosf(), FLT_MAX, kernel_data, kernel_data_fetch, LAMP_NONE, len_squared(), LIGHT_TRIANGLE, max, normalize_len(), object_lightgroup(), P, ray_triangle_intersect(), safe_acosf(), safe_normalize(), safe_normalize_len(), SD_MIS_BACK, SD_MIS_FRONT, SD_OBJECT_NEGATIVE_SCALE, SHADER_MASK, SHADER_USE_MIS, sin_from_cos(), sin_phi(), triangle_area(), triangle_light_pdf_area_sampling(), triangle_world_space_vertices(), UNLIKELY, V, v, float2::x, float2::y, and z().
Referenced by light_sample().
| ccl_device_forceinline bool triangle_light_tree_parameters | ( | KernelGlobals | kg, |
| const ccl_global KernelLightTreeEmitter * | kemitter, | ||
| const float3 | centroid, | ||
| const float3 | P, | ||
| const float3 | N, | ||
| const BoundingCone | bcone, | ||
| ccl_private float & | cos_theta_u, | ||
| ccl_private float2 & | distance, | ||
| ccl_private float3 & | point_to_centroid ) |
Definition at line 293 of file light/triangle.h.
References dot(), FLT_MAX, fmaxf, fminf, make_float2(), N, P, safe_normalize_len(), and triangle_vertices().
Referenced by light_tree_emitter_importance().
| ccl_device_inline bool triangle_light_valid_ray_segment | ( | KernelGlobals | kg, |
| const float3 | P, | ||
| const float3 | D, | ||
| ccl_private float2 * | t_range, | ||
| const ccl_private LightSample * | ls ) |
Definition at line 273 of file light/triangle.h.
References D, kernel_data_fetch, N, P, ray_plane_intersect(), SD_MIS_BACK, SD_MIS_FRONT, and SHADER_MASK.
| CCL_NAMESPACE_BEGIN ccl_device_inline bool triangle_world_space_vertices | ( | KernelGlobals | kg, |
| int | object, | ||
| int | prim, | ||
| float | time, | ||
| float3 | V[3] ) |
Definition at line 12 of file light/triangle.h.
References kernel_data_fetch, motion_triangle_vertices(), NULL, object_fetch_transform(), object_fetch_transform_motion_test(), OBJECT_TRANSFORM, SD_OBJECT_HAS_VERTEX_MOTION, SD_OBJECT_TRANSFORM_APPLIED, transform_point(), triangle_vertices(), and V.
Referenced by triangle_light_pdf(), and triangle_light_sample().