Blender V5.0
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, 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 Spectrum *closure_weight, const uint r, uint g, const uint b)
ccl_device void svm_node_closure_weight (ccl_private float *stack, ccl_private Spectrum *closure_weight, const uint weight_offset)
ccl_device void svm_node_emission_weight (ccl_private float *stack, ccl_private Spectrum *closure_weight, const uint4 node)
ccl_device_noinline void svm_node_mix_closure (ccl_private float *stack, const uint4 node)
ccl_device void svm_node_set_normal (ccl_private ShaderData *sd, ccl_private float *stack, const uint in_direction, const uint out_normal)

Function Documentation

◆ svm_alloc_closure_volume_scatter()

◆ svm_node_closure_background()

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

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

Definition at line 45 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_float3_default(), stack_load_float_default(), stack_valid(), svm_node_closure_bsdf_skip(), SVM_STACK_INVALID, svm_unpack_node_uchar4(), T, FresnelThinFilm::thickness, FresnelConductor::thin_film, FresnelF82Tint::thin_film, thinfilm_thickness, THINFILM_THICKNESS_CUTOFF, 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,
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().

◆ 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,
const 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,
const uint4 node )

◆ svm_node_closure_set_weight()

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

Definition at line 1489 of file closure.h.

References __uint_as_float, b, ccl_device, ccl_private, 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 float * stack,
ccl_private Spectrum * closure_weight,
const uint weight_offset )

Definition at line 1498 of file closure.h.

References ccl_device, ccl_private, rgb_to_spectrum(), and stack_load_float3().

Referenced by svm_eval_nodes().

◆ svm_node_emission_weight()

ccl_device void svm_node_emission_weight ( ccl_private float * stack,
ccl_private Spectrum * closure_weight,
const uint4 node )

◆ svm_node_mix_closure()

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

◆ svm_node_principled_volume()

◆ svm_node_set_normal()

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

Definition at line 1546 of file closure.h.

References ccl_device, ccl_private, stack_load_float3(), and stack_store_float3().

Referenced by svm_eval_nodes().

◆ svm_node_volume_coefficients()