|
Blender V4.3
|
#include "kernel/closure/alloc.h"#include "kernel/closure/bsdf.h"#include "kernel/closure/bsdf_util.h"#include "kernel/closure/emissive.h"#include "kernel/integrator/guiding.h"Go to the source code of this file.
| ccl_device_inline float _surface_shader_bsdf_eval_mis | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| const float3 | wo, | ||
| ccl_private const ShaderClosure * | skip_sc, | ||
| ccl_private BsdfEval * | result_eval, | ||
| float | sum_pdf, | ||
| float | sum_sample_weight, | ||
| const uint | light_shader_flags ) |
Definition at line 264 of file surface_shader.h.
References _surface_shader_exclude(), bsdf_eval(), bsdf_eval_accum(), ccl_private, CLOSURE_IS_BSDF, CLOSURE_IS_BSDF_OR_BSSRDF, and ShaderClosure.
Referenced by surface_shader_bsdf_eval(), and surface_shader_bsdf_sample_closure().
| ccl_device_forceinline bool _surface_shader_exclude | ( | ClosureType | type, |
| uint | light_shader_flags ) |
Definition at line 234 of file surface_shader.h.
References CLOSURE_IS_BSDF_DIFFUSE, CLOSURE_IS_BSDF_GLOSSY, CLOSURE_IS_BSDF_TRANSMISSION, CLOSURE_IS_GLASS, SHADER_EXCLUDE_ANY, SHADER_EXCLUDE_DIFFUSE, SHADER_EXCLUDE_GLOSSY, and SHADER_EXCLUDE_TRANSMIT.
Referenced by _surface_shader_bsdf_eval_mis(), and surface_shader_bsdf_eval_pdfs().
| ccl_device Spectrum surface_shader_alpha | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd ) |
Definition at line 964 of file surface_shader.h.
References one_spectrum, saturate, and surface_shader_transparency().
Referenced by film_write_data_passes().
| ccl_device Spectrum surface_shader_ao | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd, | ||
| const float | ao_factor, | ||
| ccl_private float3 * | N_ ) |
Definition at line 1029 of file surface_shader.h.
References average(), ccl_private, CLOSURE_IS_BSDF_DIFFUSE, fabsf, is_zero(), N, N_, normalize(), ShaderClosure, zero_float3(), and zero_spectrum.
| ccl_device Spectrum surface_shader_apply_holdout | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd ) |
Definition at line 1119 of file surface_shader.h.
References ccl_private, CLOSURE_IS_BSDF_TRANSPARENT, CLOSURE_IS_HOLDOUT, NBUILTIN_CLOSURES, one_spectrum, SD_BSDF, SD_CLOSURE_FLAGS, SD_HAS_ONLY_VOLUME, SD_OBJECT_HOLDOUT_MASK, SD_TRANSPARENT, ShaderClosure, and zero_spectrum.
Referenced by integrate_surface_holdout().
| ccl_device float3 surface_shader_average_normal | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd ) |
Definition at line 1015 of file surface_shader.h.
References average(), ccl_private, CLOSURE_IS_BSDF_OR_BSSRDF, fabsf, is_zero(), N, normalize(), ShaderClosure, and zero_float3().
Referenced by film_write_data_passes().
| ccl_device float surface_shader_average_roughness | ( | ccl_private const ShaderData * | sd | ) |
Definition at line 928 of file surface_shader.h.
References average(), bsdf_get_roughness_pass_squared(), ccl_private, CLOSURE_IS_BSDF, fabsf, ShaderClosure, and sqrtf.
Referenced by film_write_data_passes().
| ccl_device Spectrum surface_shader_background | ( | ccl_private const ShaderData * | sd | ) |
Definition at line 1095 of file surface_shader.h.
References SD_EMISSION, and zero_spectrum.
Referenced by integrator_eval_background_shader(), kernel_background_evaluate(), and light_sample_shader_eval().
| ccl_device_inline ccl_private const ShaderClosure * surface_shader_bsdf_bssrdf_pick | ( | ccl_private const ShaderData *ccl_restrict | sd, |
| ccl_private float3 * | rand_bsdf ) |
Definition at line 395 of file surface_shader.h.
References ccl_private, CLOSURE_IS_BSDF_OR_BSSRDF, ShaderClosure, and sum().
Referenced by integrate_surface_bsdf_bssrdf_bounce().
| ccl_device float surface_shader_bsdf_eval | ( | KernelGlobals | kg, |
| IntegratorState | state, | ||
| ccl_private ShaderData * | sd, | ||
| const float3 | wo, | ||
| ccl_private BsdfEval * | bsdf_eval, | ||
| const uint | light_shader_flags ) |
Definition at line 355 of file surface_shader.h.
References _surface_shader_bsdf_eval_mis(), bsdf_eval(), bsdf_eval_init(), guiding_bsdf_pdf(), GUIDING_DIRECTIONAL_SAMPLING_TYPE_RIS, kernel_data, NULL, SHADER_USE_MIS, state, and zero_spectrum.
Referenced by integrate_surface_direct_light().
| ccl_device_inline float surface_shader_bsdf_eval_pdfs | ( | const KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| const float3 | wo, | ||
| ccl_private BsdfEval * | result_eval, | ||
| ccl_private float * | pdfs, | ||
| const uint | light_shader_flags ) |
Definition at line 300 of file surface_shader.h.
References _surface_shader_exclude(), bsdf_eval(), bsdf_eval_accum(), bsdf_eval_init(), ccl_private, CLOSURE_IS_BSDF, CLOSURE_IS_BSDF_OR_BSSRDF, kernel_assert, ShaderClosure, and zero_spectrum.
| ccl_device int surface_shader_bsdf_sample_closure | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private const ShaderClosure * | sc, | ||
| const int | path_flag, | ||
| const float3 | rand_bsdf, | ||
| ccl_private BsdfEval * | bsdf_eval, | ||
| ccl_private float3 * | wo, | ||
| ccl_private float * | pdf, | ||
| ccl_private float2 * | sampled_roughness, | ||
| ccl_private float * | eta ) |
Definition at line 893 of file surface_shader.h.
References _surface_shader_bsdf_eval_mis(), bsdf_eval(), bsdf_eval_init(), bsdf_sample(), CLOSURE_IS_BSDF, kernel_assert, label, and zero_spectrum.
Referenced by integrate_surface_bsdf_bssrdf_bounce().
| ccl_device_inline Spectrum surface_shader_bssrdf_sample_weight | ( | ccl_private const ShaderData *ccl_restrict | sd, |
| ccl_private const ShaderClosure *ccl_restrict | bssrdf_sc ) |
Definition at line 439 of file surface_shader.h.
References ccl_private, CLOSURE_IS_BSDF_OR_BSSRDF, ShaderClosure, and sum().
| ccl_device bool surface_shader_constant_emission | ( | KernelGlobals | kg, |
| int | shader, | ||
| ccl_private Spectrum * | eval ) |
Definition at line 1073 of file surface_shader.h.
References kernel_data_fetch, make_float3(), rgb_to_spectrum(), SD_HAS_CONSTANT_EMISSION, and SHADER_MASK.
Referenced by integrator_eval_background_shader(), and light_sample_shader_eval().
| ccl_device Spectrum surface_shader_diffuse | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd ) |
Definition at line 973 of file surface_shader.h.
References bsdf_albedo(), ccl_private, CLOSURE_IS_BSDF_DIFFUSE, CLOSURE_IS_BSSRDF, ShaderClosure, and zero_spectrum.
Referenced by film_write_data_passes().
| ccl_device Spectrum surface_shader_emission | ( | ccl_private const ShaderData * | sd | ) |
Definition at line 1107 of file surface_shader.h.
References emissive_simple_eval(), SD_EMISSION, and zero_spectrum.
Referenced by integrate_surface_emission(), and light_sample_shader_eval().
| ccl_device void surface_shader_eval | ( | KernelGlobals | kg, |
| ConstIntegratorGenericState | state, | ||
| ccl_private ShaderData *ccl_restrict | sd, | ||
| ccl_global float *ccl_restrict | buffer, | ||
| uint32_t | path_flag, | ||
| bool | use_caustics_storage = false ) |
Definition at line 1157 of file surface_shader.h.
References bsdf_alloc(), bsdf_diffuse_setup(), CAUSTICS_MAX_CLOSURE, ccl_private, kernel_data, KERNEL_FEATURE_OSL, make_spectrum, NULL, OBJECT_NONE, osl_eval_nodes< SHADER_TYPE_SURFACE >(), PATH_RAY_EMISSION, PATH_RAY_SHADOW, PATH_RAY_TERMINATE, SD_EMISSION, state, svm_eval_nodes(), and zero_spectrum.
Referenced by integrate_surface(), integrator_eval_background_shader(), kernel_background_evaluate(), kernel_curve_shadow_transparency_evaluate(), and light_sample_shader_eval().
| ccl_device Spectrum surface_shader_glossy | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd ) |
Definition at line 987 of file surface_shader.h.
References bsdf_albedo(), ccl_private, CLOSURE_IS_BSDF_GLOSSY, CLOSURE_IS_GLASS, ShaderClosure, and zero_spectrum.
Referenced by film_write_data_passes().
| CCL_NAMESPACE_BEGIN ccl_device_inline void surface_shader_prepare_closures | ( | KernelGlobals | kg, |
| ConstIntegratorState | state, | ||
| ccl_private ShaderData * | sd, | ||
| const uint32_t | path_flag ) |
Definition at line 137 of file surface_shader.h.
References __MNEE__, bsdf_blur(), BSDF_ROUGHNESS_SQ_THRESH, ccl_private, CLOSURE_HOLDOUT_ID, CLOSURE_IS_BSDF, CLOSURE_IS_BSDF_DIFFUSE, CLOSURE_IS_BSDF_GLOSSY, CLOSURE_IS_BSDF_TRANSMISSION, CLOSURE_IS_BSDF_TRANSPARENT, CLOSURE_IS_GLASS, CLOSURE_NONE_ID, FILTER_CLOSURE_DIFFUSE, FILTER_CLOSURE_DIRECT_LIGHT, FILTER_CLOSURE_EMISSION, FILTER_CLOSURE_GLOSSY, FILTER_CLOSURE_TRANSMISSION, FILTER_CLOSURE_TRANSPARENT, FLT_MAX, INTEGRATOR_STATE, kernel_data, PATH_MNEE_VALID, PATH_RAY_CAMERA, SD_BSDF_HAS_EVAL, SD_HOLDOUT, ShaderClosure, sqr(), sqrtf, state, and zero_spectrum.
Referenced by integrate_surface().
| ccl_device Spectrum surface_shader_transmission | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd ) |
Definition at line 1001 of file surface_shader.h.
References bsdf_albedo(), ccl_private, CLOSURE_IS_BSDF_TRANSMISSION, CLOSURE_IS_GLASS, ShaderClosure, and zero_spectrum.
Referenced by film_write_data_passes().
| ccl_device Spectrum surface_shader_transparency | ( | KernelGlobals | kg, |
| ccl_private const ShaderData * | sd ) |
Definition at line 951 of file surface_shader.h.
References one_spectrum, SD_HAS_ONLY_VOLUME, SD_RAY_PORTAL, SD_TRANSPARENT, and zero_spectrum.
Referenced by film_write_data_passes(), kernel_curve_shadow_transparency_evaluate(), and surface_shader_alpha().