Blender V4.3
closure.h File Reference

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, 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, uint4 node, uint32_t path_flag, int offset)
 
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, uint4 node)
 
template<ShaderType shader_type>
ccl_device_noinline int svm_node_principled_volume (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, uint4 node, 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, uint4 node)
 
ccl_device_noinline void svm_node_closure_background (ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, uint4 node)
 
ccl_device_noinline void svm_node_closure_holdout (ccl_private ShaderData *sd, ccl_private float *stack, Spectrum closure_weight, uint4 node)
 
ccl_device void svm_node_closure_set_weight (ccl_private ShaderData *sd, ccl_private Spectrum *closure_weight, uint r, uint g, uint b)
 
ccl_device void svm_node_closure_weight (ccl_private ShaderData *sd, ccl_private float *stack, ccl_private Spectrum *closure_weight, 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, uint4 node)
 
ccl_device_noinline void svm_node_mix_closure (ccl_private ShaderData *sd, ccl_private float *stack, uint4 node)
 
ccl_device void svm_node_set_normal (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint in_direction, uint out_normal)
 

Function Documentation

◆ svm_node_closure_background()

ccl_device_noinline void svm_node_closure_background ( ccl_private ShaderData * sd,
ccl_private float * stack,
Spectrum closure_weight,
uint4 node )

Definition at line 1250 of file closure.h.

References background_setup(), mix_weight(), stack_load_float(), and stack_valid().

Referenced by svm_eval_nodes().

◆ svm_node_closure_bsdf()

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,
uint4 node,
uint32_t path_flag,
int offset )

Definition at line 38 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(), metallic, min, mix, mix_weight(), N, NODE_PRINCIPLED_HAIR_DIRECT_ABSORPTION, NODE_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION, NODE_PRINCIPLED_HAIR_REFLECTANCE, normalize(), NULL, AttributeDescriptor::offset, one_float3(), one_spectrum, PATH_RAY_CAMERA, PATH_RAY_DIFFUSE, power(), PRIMITIVE_CURVE, primitive_surface_attribute_float(), PRIMITIVE_UNPACK_SEGMENT, HuangHairExtra::R, R, read_node(), rgb_to_spectrum(), rotate_around_axis(), SheenBsdf::roughness, safe_normalize(), safe_normalize_fallback(), saturate, saturatef, SD_BACKFACING, SHADER_TYPE_SURFACE, ShaderClosure, VelvetBsdf::sigma, ToonBsdf::size, 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().

◆ svm_node_closure_bsdf_skip()

CCL_NAMESPACE_BEGIN ccl_device_inline int svm_node_closure_bsdf_skip ( KernelGlobals kg,
int offset,
uint type )

Definition at line 18 of file closure.h.

References CLOSURE_BSDF_PRINCIPLED_ID, and read_node().

Referenced by svm_node_closure_bsdf().

◆ svm_node_closure_emission()

ccl_device_noinline void svm_node_closure_emission ( KernelGlobals kg,
ccl_private ShaderData * sd,
ccl_private float * stack,
Spectrum closure_weight,
uint4 node )

◆ svm_node_closure_holdout()

ccl_device_noinline void svm_node_closure_holdout ( ccl_private ShaderData * sd,
ccl_private float * stack,
Spectrum closure_weight,
uint4 node )

◆ svm_node_closure_set_weight()

ccl_device void svm_node_closure_set_weight ( ccl_private ShaderData * sd,
ccl_private Spectrum * closure_weight,
uint r,
uint g,
uint b )

Definition at line 1296 of file closure.h.

References __uint_as_float, b, make_float3(), and rgb_to_spectrum().

Referenced by svm_eval_nodes().

◆ svm_node_closure_volume()

◆ svm_node_closure_weight()

ccl_device void svm_node_closure_weight ( ccl_private ShaderData * sd,
ccl_private float * stack,
ccl_private Spectrum * closure_weight,
uint weight_offset )

Definition at line 1303 of file closure.h.

References rgb_to_spectrum(), and stack_load_float3().

Referenced by svm_eval_nodes().

◆ svm_node_emission_weight()

ccl_device_noinline void svm_node_emission_weight ( KernelGlobals kg,
ccl_private ShaderData * sd,
ccl_private float * stack,
ccl_private Spectrum * closure_weight,
uint4 node )

Definition at line 1311 of file closure.h.

References rgb_to_spectrum(), stack_load_float(), and stack_load_float3().

Referenced by svm_eval_nodes().

◆ svm_node_mix_closure()

ccl_device_noinline void svm_node_mix_closure ( ccl_private ShaderData * sd,
ccl_private float * stack,
uint4 node )

◆ svm_node_principled_volume()

◆ svm_node_set_normal()

ccl_device void svm_node_set_normal ( KernelGlobals kg,
ccl_private ShaderData * sd,
ccl_private float * stack,
uint in_direction,
uint out_normal )

Definition at line 1348 of file closure.h.

References stack_load_float3(), and stack_store_float3().

Referenced by svm_eval_nodes().