|
Blender
V2.93
|
#include "kernel/closure/alloc.h"#include "kernel/closure/bsdf_util.h"#include "kernel/closure/bsdf.h"#include "kernel/closure/emissive.h"#include "kernel/svm/svm.h"Go to the source code of this file.
| ccl_device_inline void _shader_bsdf_multi_eval | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| const float3 | omega_in, | ||
| float * | pdf, | ||
| const ShaderClosure * | skip_sc, | ||
| BsdfEval * | result_eval, | ||
| float | sum_pdf, | ||
| float | sum_sample_weight | ||
| ) |
Definition at line 553 of file kernel_shader.h.
References bsdf_eval(), bsdf_eval_accum(), CLOSURE_IS_BSDF, kg, and ShaderClosure.
Referenced by shader_bsdf_eval(), and shader_bsdf_sample().
| ccl_device float3 shader_background_eval | ( | ShaderData * | sd | ) |
Definition at line 995 of file kernel_shader.h.
References SD_EMISSION, and zero_float3().
Referenced by direct_emissive_eval(), indirect_background(), and kernel_background_evaluate().
| ccl_device float3 shader_bsdf_alpha | ( | KernelGlobals * | kg, |
| ShaderData * | sd | ||
| ) |
Definition at line 859 of file kernel_shader.h.
References alpha, kg, max, min, one_float3(), shader_bsdf_transparency(), and zero_float3().
Referenced by kernel_path_integrate(), kernel_shadow_blocked_ao(), and kernel_write_data_passes().
| ccl_device float3 shader_bsdf_ao | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| float | ao_factor, | ||
| float3 * | N_ | ||
| ) |
Definition at line 925 of file kernel_shader.h.
References average(), CLOSURE_IS_BSDF_DIFFUSE, fabsf, is_zero(), N, N_, normalize(), ShaderClosure, and zero_float3().
Referenced by kernel_path_ao().
| ccl_device float3 shader_bsdf_average_normal | ( | KernelGlobals * | kg, |
| ShaderData * | sd | ||
| ) |
Definition at line 912 of file kernel_shader.h.
References average(), CLOSURE_IS_BSDF_OR_BSSRDF, fabsf, is_zero(), N, normalize(), ShaderClosure, and zero_float3().
Referenced by kernel_write_data_passes().
| ccl_device float shader_bsdf_average_roughness | ( | ShaderData * | sd | ) |
Definition at line 800 of file kernel_shader.h.
References average(), bsdf_get_roughness_squared(), CLOSURE_IS_BSDF, fabsf, usdtokens::roughness(), safe_sqrtf(), ShaderClosure, and sqrtf.
| ccl_device void shader_bsdf_blur | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| float | roughness | ||
| ) |
Definition at line 820 of file kernel_shader.h.
References bsdf_blur(), CLOSURE_IS_BSDF, kg, usdtokens::roughness(), and ShaderClosure.
Referenced by kernel_path_shader_apply().
| ccl_device float3 shader_bsdf_diffuse | ( | KernelGlobals * | kg, |
| ShaderData * | sd | ||
| ) |
Definition at line 869 of file kernel_shader.h.
References CLOSURE_IS_BSDF_BSSRDF, CLOSURE_IS_BSDF_DIFFUSE, CLOSURE_IS_BSSRDF, ShaderClosure, and zero_float3().
Referenced by kernel_write_data_passes().
| ccl_device void shader_bsdf_disable_transparency | ( | KernelGlobals * | kg, |
| ShaderData * | sd | ||
| ) |
Definition at line 843 of file kernel_shader.h.
References CLOSURE_BSDF_TRANSPARENT_ID, SD_TRANSPARENT, ShaderClosure, and zero_float3().
| ccl_device void shader_bsdf_eval | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| const float3 | omega_in, | ||
| BsdfEval * | eval, | ||
| float | light_pdf, | ||
| bool | use_mis | ||
| ) |
Definition at line 611 of file kernel_shader.h.
References _shader_bsdf_multi_eval(), bsdf_eval_init(), bsdf_eval_mis(), kernel_data, kg, NBUILTIN_CLOSURES, NULL, power_heuristic(), PROFILING_CLOSURE_EVAL, PROFILING_INIT, and zero_float3().
Referenced by direct_emission().
| ccl_device float3 shader_bsdf_glossy | ( | KernelGlobals * | kg, |
| ShaderData * | sd | ||
| ) |
Definition at line 884 of file kernel_shader.h.
References CLOSURE_IS_BSDF_GLOSSY, ShaderClosure, and zero_float3().
Referenced by kernel_write_data_passes().
| ccl_device_inline const ShaderClosure* shader_bsdf_pick | ( | ShaderData * | sd, |
| float * | randu | ||
| ) |
Definition at line 637 of file kernel_shader.h.
References CLOSURE_IS_BSDF, CLOSURE_IS_BSDF_OR_BSSRDF, NULL, r, ShaderClosure, and sum().
Referenced by shader_bsdf_sample().
| ccl_device_inline int shader_bsdf_sample | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| float | randu, | ||
| float | randv, | ||
| BsdfEval * | bsdf_eval, | ||
| float3 * | omega_in, | ||
| differential3 * | domega_in, | ||
| float * | |||
| ) |
Definition at line 738 of file kernel_shader.h.
References _shader_bsdf_multi_eval(), bsdf_eval(), bsdf_eval_init(), bsdf_sample(), CLOSURE_IS_BSDF, kernel_assert, kernel_data, kg, label, LABEL_NONE, NULL, PROFILING_CLOSURE_SAMPLE, PROFILING_INIT, shader_bsdf_pick(), ShaderClosure, and zero_float3().
Referenced by kernel_path_surface_bounce().
| ccl_device int shader_bsdf_sample_closure | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| const ShaderClosure * | sc, | ||
| float | randu, | ||
| float | randv, | ||
| BsdfEval * | bsdf_eval, | ||
| float3 * | omega_in, | ||
| differential3 * | domega_in, | ||
| float * | |||
| ) |
Definition at line 776 of file kernel_shader.h.
References bsdf_eval(), bsdf_eval_init(), bsdf_sample(), kernel_data, kg, label, PROFILING_CLOSURE_SAMPLE, PROFILING_INIT, and zero_float3().
| ccl_device float3 shader_bsdf_transmission | ( | KernelGlobals * | kg, |
| ShaderData * | sd | ||
| ) |
Definition at line 898 of file kernel_shader.h.
References CLOSURE_IS_BSDF_TRANSMISSION, ShaderClosure, and zero_float3().
Referenced by kernel_write_data_passes().
| ccl_device float3 shader_bsdf_transparency | ( | KernelGlobals * | kg, |
| const ShaderData * | sd | ||
| ) |
Definition at line 830 of file kernel_shader.h.
References one_float3(), SD_HAS_ONLY_VOLUME, SD_TRANSPARENT, and zero_float3().
Referenced by kernel_path_shader_apply(), kernel_write_data_passes(), shader_bsdf_alpha(), and shadow_handle_transparent_isect().
| ccl_device_inline const ShaderClosure* shader_bssrdf_pick | ( | ShaderData * | sd, |
| ccl_addr_space float3 * | throughput, | ||
| float * | randu | ||
| ) |
Definition at line 681 of file kernel_shader.h.
References CLOSURE_IS_BSDF, CLOSURE_IS_BSDF_OR_BSSRDF, CLOSURE_IS_BSSRDF, NULL, r, and ShaderClosure.
| ccl_device bool shader_constant_emission_eval | ( | KernelGlobals * | kg, |
| int | shader, | ||
| float3 * | eval | ||
| ) |
Definition at line 977 of file kernel_shader.h.
References kernel_tex_fetch, make_float3, SD_HAS_CONSTANT_EMISSION, shader(), and SHADER_MASK.
Referenced by direct_emissive_eval(), and indirect_background().
| ccl_device float shader_cryptomatte_id | ( | KernelGlobals * | kg, |
| int | shader | ||
| ) |
Definition at line 1361 of file kernel_shader.h.
References kernel_tex_fetch, shader(), and SHADER_MASK.
Referenced by kernel_write_data_passes().
| ccl_device float3 shader_emissive_eval | ( | ShaderData * | sd | ) |
Definition at line 1007 of file kernel_shader.h.
References emissive_simple_eval(), SD_EMISSION, and zero_float3().
Referenced by direct_emissive_eval(), and indirect_primitive_emission().
| ccl_device void shader_eval_displacement | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| ccl_addr_space PathState * | state | ||
| ) |
Definition at line 1316 of file kernel_shader.h.
References eval_displacement(), kg, NULL, SHADER_TYPE_DISPLACEMENT, state, and svm_eval_nodes().
Referenced by kernel_displace_evaluate().
| ccl_device void shader_eval_surface | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| ccl_addr_space PathState * | state, | ||
| ccl_global float * | buffer, | ||
| int | path_flag | ||
| ) |
Definition at line 1056 of file kernel_shader.h.
References bsdf_alloc(), bsdf_diffuse_setup(), buffer, kernel_data, kg, LAMP_NONE, lcg_state_init_addrspace(), make_float3, NULL, OBJECT_NONE, PATH_RAY_EMISSION, PATH_RAY_SHADOW, PATH_RAY_TERMINATE, PROFILING_INIT, PROFILING_SHADER_EVAL, SD_BSDF_NEEDS_LCG, SD_EMISSION, SHADER_TYPE_SURFACE, state, and svm_eval_nodes().
Referenced by direct_emissive_eval(), indirect_background(), kernel_background_evaluate(), kernel_path_integrate(), kernel_shader_eval(), shadow_handle_transparent_isect(), and subsurface_color_bump_blur().
| ccl_device float3 shader_holdout_apply | ( | KernelGlobals * | kg, |
| ShaderData * | sd | ||
| ) |
Definition at line 1019 of file kernel_shader.h.
References CLOSURE_IS_BSDF_TRANSPARENT, CLOSURE_IS_HOLDOUT, NBUILTIN_CLOSURES, one_float3(), SD_BSDF, SD_CLOSURE_FLAGS, SD_HAS_ONLY_VOLUME, SD_OBJECT_HOLDOUT_MASK, SD_TRANSPARENT, ShaderClosure, and zero_float3().
Referenced by kernel_path_shader_apply().
| ccl_device_inline void shader_prepare_closures | ( | ShaderData * | sd, |
| ccl_addr_space PathState * | state | ||
| ) |
Definition at line 527 of file kernel_shader.h.
References CLOSURE_IS_BSDF_OR_BSSRDF, max, ShaderClosure, state, and sum().
Referenced by kernel_path_integrate(), and kernel_shader_eval().
| ccl_device_inline void shader_setup_from_background | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| const Ray * | ray | ||
| ) |
Definition at line 397 of file kernel_shader.h.
References Ray::D, Ray::dD, differential_incoming(), differential_zero(), kernel_data, kernel_tex_fetch, kg, LAMP_NONE, OBJECT_NONE, Ray::P, PRIM_NONE, PROFILING_INIT, PROFILING_OBJECT, PROFILING_SHADER, PROFILING_SHADER_SETUP, SHADER_MASK, Ray::time, and zero_float3().
Referenced by direct_emissive_eval(), indirect_background(), and kernel_background_evaluate().
| ccl_device void shader_setup_from_displace | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| int | object, | ||
| int | prim, | ||
| float | u, | ||
| float | v | ||
| ) |
Definition at line 367 of file kernel_shader.h.
References I, kernel_tex_fetch, kg, LAMP_NONE, P(), SD_OBJECT_TRANSFORM_APPLIED, shader(), shader_setup_from_sample(), SHADER_SMOOTH_NORMAL, triangle_point_normal(), v, and zero_float3().
Referenced by kernel_displace_evaluate().
| CCL_NAMESPACE_BEGIN ccl_device_noinline void shader_setup_from_ray | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| const Intersection * | isect, | ||
| const Ray * | ray | ||
| ) |
Definition at line 59 of file kernel_shader.h.
References Ray::D, Ray::dD, differential_dudv(), differential_incoming(), differential_transfer(), dot(), Ray::dP, kernel_tex_fetch, kg, LAMP_NONE, motion_triangle_shader_setup(), Intersection::object, object_dir_transform_auto, OBJECT_NONE, object_normal_transform_auto, Intersection::prim, PRIMITIVE_ALL_CURVE, PRIMITIVE_TRIANGLE, PROFILING_INIT, PROFILING_OBJECT, PROFILING_SHADER, PROFILING_SHADER_SETUP, SD_BACKFACING, SHADER_MASK, SHADER_SMOOTH_NORMAL, Intersection::t, Ray::time, triangle_dPdudv(), triangle_normal(), triangle_refine(), triangle_smooth_normal(), Intersection::type, Intersection::u, and Intersection::v.
Referenced by OSLRenderServices::getmessage(), kernel_path_integrate(), kernel_shader_setup(), and shadow_handle_transparent_isect().
| ccl_device_inline void shader_setup_from_sample | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| const float3 | P, | ||
| const float3 | Ng, | ||
| const float3 | I, | ||
| int | shader, | ||
| int | object, | ||
| int | prim, | ||
| float | u, | ||
| float | v, | ||
| float | t, | ||
| float | time, | ||
| bool | object_space, | ||
| int | lamp | ||
| ) |
Definition at line 244 of file kernel_shader.h.
References differential3_zero(), differential_zero(), dot(), I, kernel_tex_fetch, kg, lamp, lamp_fetch_transform(), LAMP_NONE, object_dir_transform_auto, OBJECT_NONE, object_normal_transform_auto, object_position_transform_auto, P(), PRIM_NONE, PRIMITIVE_LAMP, PRIMITIVE_NONE, PRIMITIVE_TRIANGLE, PROFILING_INIT, PROFILING_OBJECT, PROFILING_SHADER, PROFILING_SHADER_SETUP, SD_BACKFACING, SD_OBJECT_TRANSFORM_APPLIED, shader(), SHADER_MASK, SHADER_SMOOTH_NORMAL, t, time, triangle_dPdudv(), triangle_smooth_normal(), v, and zero_float3().
Referenced by direct_emissive_eval(), and shader_setup_from_displace().