|
Blender V4.3
|
#include "kernel/integrator/path_state.h"#include "kernel/integrator/surface_shader.h"#include "kernel/film/data_passes.h"#include "kernel/film/denoising_passes.h"#include "kernel/film/light_passes.h"#include "kernel/light/sample.h"#include "kernel/integrator/mnee.h"#include "kernel/integrator/guiding.h"#include "kernel/integrator/shadow_linking.h"#include "kernel/integrator/subsurface.h"#include "kernel/integrator/volume_stack.h"Go to the source code of this file.
| ccl_device_inline IntegratorShadowState integrate_direct_light_shadow_init_common | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_private const Ray *ccl_restrict | ray, | ||
| const Spectrum | bsdf_spectrum, | ||
| const int | light_group, | ||
| const int | mnee_vertex_count ) |
Definition at line 198 of file shade_surface.h.
References DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW, integrator_shadow_path_init(), INTEGRATOR_STATE, INTEGRATOR_STATE_WRITE, integrator_state_write_shadow_ray(), integrator_state_write_shadow_ray_self(), sample, and state.
Referenced by integrate_surface_direct_light().
| ccl_device int integrate_surface | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_global float *ccl_restrict | render_buffer ) |
Definition at line 686 of file shade_surface.h.
References film_write_data_passes(), flag, guiding_record_surface_segment(), guiding_write_debug_passes(), integrate_surface_bsdf_bssrdf_bounce(), integrate_surface_direct_light(), integrate_surface_emission(), integrate_surface_holdout(), integrate_surface_shader_setup(), integrate_surface_terminate(), INTEGRATOR_STATE, INTEGRATOR_STATE_WRITE, kernel_data, KERNEL_FEATURE_AO, LABEL_NONE, LABEL_TRANSMIT, lcg_state_init(), PATH_RAY_SUBSURFACE, path_state_rng_load(), PROFILING_EVENT, PROFILING_INIT_FOR_SHADER, PROFILING_SHADE_SURFACE_AO, PROFILING_SHADE_SURFACE_DIRECT_LIGHT, PROFILING_SHADE_SURFACE_EVAL, PROFILING_SHADE_SURFACE_INDIRECT_LIGHT, PROFILING_SHADE_SURFACE_PASSES, PROFILING_SHADE_SURFACE_SETUP, PROFILING_SHADER, render_buffer, sample, SD_BSDF_NEEDS_LCG, SD_EMISSION, SD_HAS_BSSRDF_BUMP, SD_HAS_ONLY_VOLUME, ShaderData, state, surface_shader_eval(), and surface_shader_prepare_closures().
Referenced by integrator_shade_surface().
| ccl_device_forceinline int integrate_surface_bsdf_bssrdf_bounce | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_private ShaderData * | sd, | ||
| ccl_private const RNGState * | rng_state ) |
Definition at line 430 of file shade_surface.h.
References bsdf_eval(), bsdf_eval_is_zero(), bsdf_eval_pass_diffuse_weight(), bsdf_eval_pass_glossy_weight(), bsdf_eval_sum(), ccl_optional_struct_init, ccl_private, CLOSURE_IS_BSSRDF, CLOSURE_IS_RAY_PORTAL, D, differential_make_compact(), flag, FLT_MAX, fminf, guiding_record_surface_bounce(), integrate_surface_ray_offset(), integrate_surface_ray_portal(), INTEGRATOR_STATE, INTEGRATOR_STATE_WRITE, intersection_t_offset(), kernel_data, KERNEL_FEATURE_LIGHT_LINKING, KERNEL_FEATURE_LIGHT_PASSES, label, LABEL_NONE, LABEL_TRANSPARENT, make_float2(), normalize(), P, path_state_next(), path_state_rng_3D(), PRNG_SURFACE_BSDF, SD_BSDF, SD_BSSRDF, ShaderClosure, state, surface_shader_bsdf_bssrdf_pick(), and surface_shader_bsdf_sample_closure().
Referenced by integrate_surface().
| ccl_device void integrate_surface_direct_light | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_private ShaderData * | sd, | ||
| ccl_private const RNGState * | rng_state ) |
Definition at line 284 of file shade_surface.h.
References AS_SHADER_DATA, bsdf_eval(), bsdf_eval_mul(), bsdf_eval_pass_diffuse_weight(), bsdf_eval_pass_glossy_weight(), bsdf_eval_sum(), ccl_optional_struct_init, ccl_private, dot(), flag, IF_KERNEL_FEATURE, integrate_direct_light_shadow_init_common(), integrate_surface_ray_offset(), INTEGRATOR_STATE, INTEGRATOR_STATE_WRITE, is_zero(), kernel_assert, kernel_data, kernel_data_fetch, KERNEL_FEATURE_LIGHT_PASSES, LAMP_NONE, light_link_receiver_nee(), light_sample_from_position(), light_sample_mis_weight_nee(), light_sample_shader_eval(), light_sample_terminate(), light_sample_to_surface_shadow_ray(), OBJECT_NONE, PATH_RAY_ANY_PASS, PATH_RAY_SURFACE_PASS, path_state_rng_3D(), path_state_rng_light_termination(), PRIM_NONE, PRNG_LIGHT, SD_BSDF_HAS_EVAL, SD_OBJECT_CAUSTICS_CASTER, SD_OBJECT_CAUSTICS_RECEIVER, ShaderData, ShaderDataCausticsStorage, state, and surface_shader_bsdf_eval().
Referenced by integrate_surface().
| ccl_device_forceinline void integrate_surface_emission | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_private const ShaderData * | sd, | ||
| ccl_global float *ccl_restrict | render_buffer ) |
Definition at line 112 of file shade_surface.h.
References film_write_surface_emission(), flag, guiding_record_surface_emission(), INTEGRATOR_STATE, kernel_data, kernel_data_fetch, KERNEL_FEATURE_SHADOW_LINKING, L, LIGHT_LINK_MASK_ALL, light_link_object_match(), light_link_receiver_forward(), light_sample_mis_weight_forward_surface(), object_lightgroup(), PATH_RAY_CAMERA, render_buffer, state, and surface_shader_emission().
Referenced by integrate_surface().
| ccl_device_forceinline bool integrate_surface_holdout | ( | KernelGlobals | kg, |
| ConstIntegratorState | state, | ||
| ccl_private ShaderData * | sd, | ||
| ccl_global float *ccl_restrict | render_buffer ) |
Definition at line 89 of file shade_surface.h.
References average(), film_write_holdout(), flag, INTEGRATOR_STATE, isequal(), one_spectrum, PATH_RAY_TRANSPARENT_BACKGROUND, render_buffer, SD_HOLDOUT, SD_OBJECT_HOLDOUT_MASK, state, and surface_shader_apply_holdout().
Referenced by integrate_surface().
| ccl_device_forceinline float3 integrate_surface_ray_offset | ( | KernelGlobals | kg, |
| const ccl_private ShaderData * | sd, | ||
| const float3 | ray_P, | ||
| const float3 | ray_D ) |
Definition at line 38 of file shade_surface.h.
References kernel_assert, motion_triangle_vertices(), object_get_inverse_transform(), PRIMITIVE_MOTION_TRIANGLE, PRIMITIVE_TRIANGLE, ray_offset(), ray_triangle_intersect_self(), SD_OBJECT_TRANSFORM_APPLIED, transform_direction(), transform_point(), triangle_vertices(), and verts.
Referenced by integrate_surface_bsdf_bssrdf_bounce(), integrate_surface_direct_light(), and integrate_surface_ray_portal().
| ccl_device int integrate_surface_ray_portal | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_private ShaderData * | sd, | ||
| ccl_private const ShaderClosure * | sc ) |
Definition at line 150 of file shade_surface.h.
References ccl_private, CLOSURE_IS_BSDF_OR_BSSRDF, differential_make_compact(), FLT_MAX, integrate_surface_ray_offset(), INTEGRATOR_STATE_WRITE, label, LABEL_NONE, LABEL_RAY_PORTAL, LABEL_TRANSMIT, len_squared(), OBJECT_NONE, P, RayPortalClosure::P, path_state_next(), ShaderClosure, and state.
Referenced by integrate_surface_bsdf_bssrdf_bounce().
| CCL_NAMESPACE_BEGIN ccl_device_forceinline void integrate_surface_shader_setup | ( | KernelGlobals | kg, |
| ConstIntegratorState | state, | ||
| ccl_private ShaderData * | sd ) |
Definition at line 25 of file shade_surface.h.
References ccl_optional_struct_init, integrator_state_read_isect(), integrator_state_read_ray(), shader_setup_from_ray(), and state.
Referenced by integrate_surface().
| ccl_device_forceinline bool integrate_surface_terminate | ( | IntegratorState | state, |
| const uint32_t | path_flag ) |
Definition at line 580 of file shade_surface.h.
References INTEGRATOR_STATE, INTEGRATOR_STATE_WRITE, PATH_RAY_TERMINATE_ON_NEXT_SURFACE, and state.
Referenced by integrate_surface().
| ccl_device_forceinline void integrator_shade_surface | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_global float *ccl_restrict | render_buffer ) |
Definition at line 826 of file shade_surface.h.
References integrate_surface(), integrator_path_terminate(), integrator_shade_surface_next_kernel(), LABEL_NONE, LABEL_TRANSPARENT, render_buffer, and state.
Referenced by integrator_megakernel(), integrator_shade_surface_mnee(), and integrator_shade_surface_raytrace().
| ccl_device_forceinline void integrator_shade_surface_mnee | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_global float *ccl_restrict | render_buffer ) |
Definition at line 857 of file shade_surface.h.
References DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE, integrator_shade_surface(), KERNEL_FEATURE_MNEE, KERNEL_FEATURE_NODE_MASK_SURFACE, render_buffer, and state.
Referenced by integrator_megakernel().
| ccl_device_forceinline void integrator_shade_surface_next_kernel | ( | KernelGlobals | kg, |
| IntegratorState | state ) |
Definition at line 812 of file shade_surface.h.
References DEVICE_KERNEL_INTEGRATOR_INTERSECT_CLOSEST, DEVICE_KERNEL_INTEGRATOR_INTERSECT_SUBSURFACE, flag, integrator_path_next(), INTEGRATOR_STATE, kernel_assert, PATH_RAY_SUBSURFACE, and state.
Referenced by integrator_intersect_dedicated_light(), integrator_shade_dedicated_light(), and integrator_shade_surface().
| ccl_device_forceinline void integrator_shade_surface_raytrace | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_global float *ccl_restrict | render_buffer ) |
Definition at line 849 of file shade_surface.h.
References DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE, integrator_shade_surface(), KERNEL_FEATURE_NODE_MASK_SURFACE, render_buffer, and state.
Referenced by integrator_megakernel().