|
Blender V4.5
|
#include "kernel/closure/alloc.h"#include "kernel/closure/bsdf.h"#include "kernel/closure/bsdf_util.h"#include "kernel/closure/bssrdf.h"#include "kernel/closure/emissive.h"#include "kernel/closure/volume.h"#include "kernel/geom/curve.h"#include "kernel/geom/object.h"#include "kernel/geom/primitive.h"#include "kernel/svm/math_util.h"#include "kernel/svm/util.h"#include "kernel/util/colorspace.h"Go to the source code of this file.
Functions | |
| CCL_NAMESPACE_BEGIN ccl_device_inline int | svm_node_closure_bsdf_skip (KernelGlobals kg, int offset, const uint type) |
| template<uint node_feature_mask, ShaderType shader_type> | |
| ccl_device_noinline int | svm_node_closure_bsdf (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, const uint4 node, const uint32_t path_flag, int offset) |
| ccl_device_inline void | svm_alloc_closure_volume_scatter (ccl_private ShaderData *sd, ccl_private float *stack, Spectrum weight, const uint type, const uint param1_offset, const uint param_extra) |
| template<ShaderType shader_type> | |
| ccl_device_noinline void | svm_node_closure_volume (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, const uint4 node) |
| template<ShaderType shader_type> | |
| ccl_device_noinline void | svm_node_volume_coefficients (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, Spectrum scatter_coeffs, const uint4 node, const uint32_t path_flag) |
| template<ShaderType shader_type> | |
| ccl_device_noinline int | svm_node_principled_volume (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, const Spectrum closure_weight, const uint4 node, const uint32_t path_flag, int offset) |
| ccl_device_noinline void | svm_node_closure_emission (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, const uint4 node) |
| ccl_device_noinline void | svm_node_closure_background (ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, const uint4 node) |
| ccl_device_noinline void | svm_node_closure_holdout (ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, const uint4 node) |
| ccl_device void | svm_node_closure_set_weight (ccl_private ShaderData *sd, ccl_private Spectrum *closure_weight, const uint r, uint g, const uint b) |
| ccl_device void | svm_node_closure_weight (ccl_private ShaderData *sd, ccl_private float *stack, ccl_private Spectrum *closure_weight, const uint weight_offset) |
| ccl_device_noinline void | svm_node_emission_weight (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, ccl_private Spectrum *closure_weight, const uint4 node) |
| ccl_device_noinline void | svm_node_mix_closure (ccl_private ShaderData *sd, ccl_private float *stack, const uint4 node) |
| ccl_device void | svm_node_set_normal (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, const uint in_direction, const uint out_normal) |
| ccl_device_inline void svm_alloc_closure_volume_scatter | ( | ccl_private ShaderData * | sd, |
| ccl_private float * | stack, | ||
| Spectrum | weight, | ||
| const uint | type, | ||
| const uint | param1_offset, | ||
| const uint | param_extra ) |
Definition at line 1056 of file closure.h.
References __uint_as_float, B, bsdf_alloc(), ccl_device_inline, ccl_private, CLOSURE_VOLUME_DRAINE_ID, CLOSURE_VOLUME_FOURNIER_FORAND_ID, CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID, CLOSURE_VOLUME_MIE_ID, CLOSURE_VOLUME_RAYLEIGH_ID, draine(), kernel_assert, phase_mie_fitted_parameters(), stack_load_float(), stack_valid(), volume_draine_setup(), volume_fournier_forand_setup(), volume_henyey_greenstein_setup(), and volume_rayleigh_setup().
Referenced by svm_node_closure_volume(), and svm_node_volume_coefficients().
| ccl_device_noinline void svm_node_closure_background | ( | ccl_private ShaderData * | sd, |
| ccl_private float * | stack, | ||
| Spectrum | closure_weight, | ||
| const uint4 | node ) |
Definition at line 1389 of file closure.h.
References background_setup(), ccl_device_noinline, ccl_private, mix_weight(), stack_load_float(), stack_valid(), and uint4::y.
Referenced by svm_eval_nodes().
| ccl_device_noinline int svm_node_closure_bsdf | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private float * | stack, | ||
| Spectrum | closure_weight, | ||
| const uint4 | node, | ||
| const uint32_t | path_flag, | ||
| int | offset ) |
Definition at line 47 of file closure.h.
References __uint_as_float, ATTR_FALLTHROUGH, ATTR_STD_NOT_FOUND, bsdf_albedo(), bsdf_alloc(), bsdf_ashikhmin_shirley_setup(), bsdf_ashikhmin_velvet_setup(), bsdf_diffuse_setup(), bsdf_diffuse_toon_setup(), bsdf_glossy_toon_setup(), bsdf_hair_reflection_setup(), bsdf_hair_transmission_setup(), bsdf_microfacet_beckmann_glass_setup(), bsdf_microfacet_beckmann_refraction_setup(), bsdf_microfacet_beckmann_setup(), bsdf_microfacet_ggx_glass_setup(), bsdf_microfacet_ggx_refraction_setup(), bsdf_microfacet_ggx_setup(), bsdf_microfacet_setup_fresnel_conductor(), bsdf_microfacet_setup_fresnel_constant(), bsdf_microfacet_setup_fresnel_dielectric(), bsdf_microfacet_setup_fresnel_f82_tint(), bsdf_microfacet_setup_fresnel_generalized_schlick(), bsdf_oren_nayar_setup(), bsdf_principled_hair_sigma_from_concentration(), bsdf_principled_hair_sigma_from_reflectance(), bsdf_ray_portal_setup(), bsdf_sheen_setup(), bsdf_translucent_setup(), bsdf_transparent_setup(), bssrdf(), bssrdf_alloc(), bssrdf_setup(), ccl_private, clamp(), closure_alloc_extra(), CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID, CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, CLOSURE_BSDF_DIFFUSE_ID, CLOSURE_BSDF_DIFFUSE_TOON_ID, CLOSURE_BSDF_F82_CONDUCTOR, CLOSURE_BSDF_GLOSSY_TOON_ID, CLOSURE_BSDF_HAIR_CHIANG_ID, CLOSURE_BSDF_HAIR_HUANG_ID, CLOSURE_BSDF_HAIR_REFLECTION_ID, CLOSURE_BSDF_HAIR_TRANSMISSION_ID, CLOSURE_BSDF_MICROFACET_BECKMANN_GLASS_ID, CLOSURE_BSDF_MICROFACET_BECKMANN_ID, CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID, CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID, CLOSURE_BSDF_MICROFACET_GGX_ID, CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID, CLOSURE_BSDF_PHYSICAL_CONDUCTOR, CLOSURE_BSDF_PRINCIPLED_ID, CLOSURE_BSDF_RAY_PORTAL_ID, CLOSURE_BSDF_SHEEN_ID, CLOSURE_BSDF_TRANSLUCENT_ID, CLOSURE_BSDF_TRANSPARENT_ID, CLOSURE_BSSRDF_BURLEY_ID, CLOSURE_BSSRDF_RANDOM_WALK_ID, CLOSURE_BSSRDF_RANDOM_WALK_SKIN_ID, closure_layering_weight(), CLOSURE_WEIGHT_CUTOFF, dot(), emission_setup(), F0_from_ior(), fabsf, find_attribute(), KernelCurve::first_key, fmaxf, IF_KERNEL_NODES_FEATURE, ior_from_F0(), is_zero(), isequal(), kernel_assert, kernel_data, kernel_data_fetch, logf, M_2PI_F, make_float3(), make_spectrum, max, maybe_ensure_valid_specular_reflection(), min, mix, mix_weight(), N, NODE_PRINCIPLED_HAIR_DIRECT_ABSORPTION, NODE_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION, NODE_PRINCIPLED_HAIR_REFLECTANCE, normalize, AttributeDescriptor::offset, one_float3(), one_spectrum, PATH_RAY_CAMERA, PATH_RAY_DIFFUSE, power(), PRIMITIVE_CURVE, primitive_surface_attribute(), PRIMITIVE_UNPACK_SEGMENT, HuangHairExtra::R, R, random(), read_node(), rgb_to_spectrum(), rotate_around_axis(), safe_normalize(), safe_normalize_fallback(), saturate, saturatef, SD_BACKFACING, SHADER_TYPE_SURFACE, sqr(), sqrt, sqrtf, stack_load_float(), stack_load_float3(), stack_load_float_default(), stack_valid(), svm_node_closure_bsdf_skip(), SVM_STACK_INVALID, svm_unpack_node_uchar4(), T, uint4::w, w(), uint4::x, uint4::y, uint4::z, zero_float3(), and zero_spectrum.
Referenced by svm_eval_nodes().
| CCL_NAMESPACE_BEGIN ccl_device_inline int svm_node_closure_bsdf_skip | ( | KernelGlobals | kg, |
| int | offset, | ||
| const uint | type ) |
Definition at line 27 of file closure.h.
References ccl_device_inline, CLOSURE_BSDF_PRINCIPLED_ID, and read_node().
Referenced by svm_node_closure_bsdf().
| ccl_device_noinline void svm_node_closure_emission | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private float * | stack, | ||
| Spectrum | closure_weight, | ||
| const uint4 | node ) |
Definition at line 1363 of file closure.h.
References ccl_device_noinline, ccl_private, emission_setup(), mix_weight(), object_volume_density(), SD_IS_VOLUME_SHADER_EVAL, stack_load_float(), stack_valid(), and uint4::y.
Referenced by svm_eval_nodes().
| ccl_device_noinline void svm_node_closure_holdout | ( | ccl_private ShaderData * | sd, |
| ccl_private float * | stack, | ||
| Spectrum | closure_weight, | ||
| const uint4 | node ) |
Definition at line 1410 of file closure.h.
References ccl_device_noinline, ccl_private, closure_alloc(), CLOSURE_HOLDOUT_ID, mix_weight(), SD_HOLDOUT, stack_load_float(), stack_valid(), and uint4::y.
Referenced by svm_eval_nodes().
| ccl_device void svm_node_closure_set_weight | ( | ccl_private ShaderData * | sd, |
| ccl_private Spectrum * | closure_weight, | ||
| const uint | r, | ||
| uint | g, | ||
| const uint | b ) |
Definition at line 1435 of file closure.h.
References __uint_as_float, b, ccl_device, ccl_private, make_float3(), and rgb_to_spectrum().
Referenced by svm_eval_nodes().
| ccl_device_noinline void svm_node_closure_volume | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private float * | stack, | ||
| Spectrum | closure_weight, | ||
| const uint4 | node ) |
Definition at line 1129 of file closure.h.
References __uint_as_float, ccl_device_noinline, ccl_private, CLOSURE_IS_VOLUME_SCATTER, CLOSURE_VOLUME_ABSORPTION_ID, fmaxf, mix_weight(), object_volume_density(), one_spectrum, SHADER_TYPE_VOLUME, stack_load_float(), stack_valid(), svm_alloc_closure_volume_scatter(), svm_unpack_node_uchar4(), volume_extinction_setup(), uint4::w, uint4::y, and uint4::z.
Referenced by svm_eval_nodes().
| ccl_device void svm_node_closure_weight | ( | ccl_private ShaderData * | sd, |
| ccl_private float * | stack, | ||
| ccl_private Spectrum * | closure_weight, | ||
| const uint | weight_offset ) |
Definition at line 1445 of file closure.h.
References ccl_device, ccl_private, rgb_to_spectrum(), and stack_load_float3().
Referenced by svm_eval_nodes().
| ccl_device_noinline void svm_node_emission_weight | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private float * | stack, | ||
| ccl_private Spectrum * | closure_weight, | ||
| const uint4 | node ) |
Definition at line 1453 of file closure.h.
References ccl_device_noinline, ccl_private, rgb_to_spectrum(), stack_load_float(), stack_load_float3(), uint4::y, and uint4::z.
Referenced by svm_eval_nodes().
| ccl_device_noinline void svm_node_mix_closure | ( | ccl_private ShaderData * | sd, |
| ccl_private float * | stack, | ||
| const uint4 | node ) |
Definition at line 1466 of file closure.h.
References ccl_device_noinline, ccl_private, saturatef, stack_load_float(), stack_store_float(), stack_valid(), svm_unpack_node_uchar4(), and uint4::y.
Referenced by svm_eval_nodes().
| ccl_device_noinline int svm_node_principled_volume | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private float * | stack, | ||
| const Spectrum | closure_weight, | ||
| const uint4 | node, | ||
| const uint32_t | path_flag, | ||
| int | offset ) |
Definition at line 1233 of file closure.h.
References __uint_as_float, absorption(), ATTR_STD_NOT_FOUND, bsdf_alloc(), ccl_device_noinline, ccl_private, emission_setup(), find_attribute(), fmaxf, M_PI_F, max, mix, mix_weight(), object_volume_density(), AttributeDescriptor::offset, one_spectrum, PATH_RAY_SHADOW, read_node(), rec709_to_rgb(), rgb_to_spectrum(), SHADER_TYPE_VOLUME, sqr(), sqrt, stack_load_float(), stack_load_float3(), stack_valid(), svm_math_blackbody_color_rec709(), svm_unpack_node_uchar4(), T, T4, volume_extinction_setup(), volume_henyey_greenstein_setup(), uint4::w, uint4::x, uint4::y, uint4::z, zero_float3(), and zero_spectrum.
Referenced by svm_eval_nodes().
| ccl_device void svm_node_set_normal | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private float * | stack, | ||
| const uint | in_direction, | ||
| const uint | out_normal ) |
Definition at line 1496 of file closure.h.
References ccl_device, ccl_private, stack_load_float3(), and stack_store_float3().
Referenced by svm_eval_nodes().
| ccl_device_noinline void svm_node_volume_coefficients | ( | KernelGlobals | kg, |
| ccl_private ShaderData * | sd, | ||
| ccl_private float * | stack, | ||
| Spectrum | scatter_coeffs, | ||
| const uint4 | node, | ||
| const uint32_t | path_flag ) |
Definition at line 1177 of file closure.h.
References ccl_device_noinline, ccl_private, CLOSURE_IS_VOLUME_SCATTER, emission_setup(), is_zero(), mix_weight(), object_volume_density(), PATH_RAY_SHADOW, SHADER_TYPE_VOLUME, stack_load_float(), stack_load_float3(), stack_valid(), svm_alloc_closure_volume_scatter(), svm_unpack_node_uchar4(), volume_extinction_setup(), uint4::w, uint4::y, and uint4::z.
Referenced by svm_eval_nodes().