Blender  V3.3
Functions
closure.h File Reference

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device void svm_node_glass_setup (ccl_private ShaderData *sd, ccl_private MicrofacetBsdf *bsdf, int type, float eta, float roughness, bool refract)
 
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, 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, uint4 node)
 
template<ShaderType shader_type>
ccl_device_noinline int svm_node_principled_volume (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint4 node, uint32_t path_flag, int offset)
 
ccl_device_noinline void svm_node_closure_emission (ccl_private ShaderData *sd, ccl_private float *stack, uint4 node)
 
ccl_device_noinline void svm_node_closure_background (ccl_private ShaderData *sd, ccl_private float *stack, uint4 node)
 
ccl_device_noinline void svm_node_closure_holdout (ccl_private ShaderData *sd, ccl_private float *stack, uint4 node)
 
ccl_device_inline void svm_node_closure_store_weight (ccl_private ShaderData *sd, float3 weight)
 
ccl_device void svm_node_closure_set_weight (ccl_private ShaderData *sd, uint r, uint g, uint b)
 
ccl_device void svm_node_closure_weight (ccl_private ShaderData *sd, ccl_private float *stack, uint weight_offset)
 
ccl_device_noinline void svm_node_emission_weight (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, 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,
uint4  node 
)

Definition at line 1142 of file closure.h.

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

Definition at line 67 of file closure.h.

References __uint_as_float(), ATTR_FALLTHROUGH, ATTR_STD_NOT_FOUND, average(), BSDF, 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_refraction_setup(), bsdf_microfacet_beckmann_setup(), bsdf_microfacet_ggx_clearcoat_setup(), bsdf_microfacet_ggx_fresnel_setup(), bsdf_microfacet_ggx_refraction_setup(), bsdf_microfacet_ggx_setup(), bsdf_microfacet_multi_ggx_fresnel_setup(), bsdf_microfacet_multi_ggx_glass_fresnel_setup(), bsdf_microfacet_multi_ggx_glass_setup(), bsdf_microfacet_multi_ggx_setup(), bsdf_oren_nayar_setup(), bsdf_principled_diffuse_setup(), bsdf_principled_hair_sigma_from_concentration(), bsdf_principled_hair_sigma_from_reflectance(), bsdf_principled_sheen_setup(), bsdf_reflection_setup(), bsdf_refraction_setup(), bsdf_translucent_setup(), bsdf_transparent_setup(), bssrdf(), bssrdf_alloc(), bssrdf_setup(), ccl_private, blender::math::clamp(), usdtokens::clearcoat(), closure_alloc_extra(), CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID, CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, CLOSURE_BSDF_DIFFUSE_ID, CLOSURE_BSDF_DIFFUSE_TOON_ID, CLOSURE_BSDF_GLOSSY_TOON_ID, CLOSURE_BSDF_HAIR_PRINCIPLED_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_PRINCIPLED_ID, CLOSURE_BSDF_REFLECTION_ID, CLOSURE_BSDF_REFRACTION_ID, CLOSURE_BSDF_SHARP_GLASS_ID, CLOSURE_BSDF_TRANSLUCENT_ID, CLOSURE_BSDF_TRANSPARENT_ID, CLOSURE_BSSRDF_BURLEY_ID, CLOSURE_BSSRDF_RANDOM_WALK_FIXED_RADIUS_ID, CLOSURE_BSSRDF_RANDOM_WALK_ID, CLOSURE_WEIGHT_CUTOFF, color, blender::math::dot(), ensure_valid_reflection(), fabsf, find_attribute(), fmaxf, fresnel_dielectric_cos(), IF_KERNEL_NODES_FEATURE, usdtokens::ior(), kernel_assert, kernel_data, linear_rgb_to_gray(), logf, M_2PI_F, make_float3, metallic, mix_weight(), N, node, NODE_PRINCIPLED_HAIR_DIRECT_ABSORPTION, NODE_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION, NODE_PRINCIPLED_HAIR_REFLECTANCE, blender::math::normalize(), NULL, offset, AttributeDescriptor::offset, PATH_RAY_DIFFUSE, PATH_RAY_DIFFUSE_ANCESTOR, PRIMITIVE_CURVE, primitive_surface_attribute_float(), PRINCIPLED_DIFFUSE_FULL, random(), read_node(), rotate_around_axis(), usdtokens::roughness(), safe_sqrtf(), saturatef(), SD_BACKFACING, SHADER_TYPE_SURFACE, usdtokens::specular(), sqr(), stack_load_float(), stack_load_float3(), stack_load_float_default(), stack_valid(), svm_node_closure_bsdf_skip(), svm_node_glass_setup(), SVM_STACK_INVALID, svm_unpack_node_uchar4(), T, type, uint4::w, float3::x, uint4::x, float3::y, uint4::y, float3::z, and uint4::z.

◆ svm_node_closure_bsdf_skip()

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

Definition at line 53 of file closure.h.

References CLOSURE_BSDF_PRINCIPLED_ID, offset, read_node(), and type.

Referenced by svm_node_closure_bsdf().

◆ svm_node_closure_emission()

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

Definition at line 1123 of file closure.h.

References emission_setup(), mix_weight(), node, stack_load_float(), and stack_valid().

Referenced by svm_eval_nodes().

◆ svm_node_closure_holdout()

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

◆ svm_node_closure_set_weight()

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

◆ svm_node_closure_store_weight()

ccl_device_inline void svm_node_closure_store_weight ( ccl_private ShaderData sd,
float3  weight 
)

◆ svm_node_closure_volume()

template<ShaderType shader_type>
ccl_device_noinline void svm_node_closure_volume ( KernelGlobals  kg,
ccl_private ShaderData sd,
ccl_private float stack,
uint4  node 
)

◆ svm_node_closure_weight()

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

Definition at line 1195 of file closure.h.

References stack_load_float3(), and svm_node_closure_store_weight().

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

Definition at line 1203 of file closure.h.

References node, stack_load_float(), stack_load_float3(), and svm_node_closure_store_weight().

Referenced by svm_eval_nodes().

◆ svm_node_glass_setup()

CCL_NAMESPACE_BEGIN ccl_device void svm_node_glass_setup ( ccl_private ShaderData sd,
ccl_private MicrofacetBsdf bsdf,
int  type,
float  eta,
float  roughness,
bool  refract 
)

◆ 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()

template<ShaderType shader_type>
ccl_device_noinline int svm_node_principled_volume ( KernelGlobals  kg,
ccl_private ShaderData sd,
ccl_private float stack,
uint4  node,
uint32_t  path_flag,
int  offset 
)

◆ 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 1241 of file closure.h.

References normal, stack_load_float3(), and stack_store_float3().

Referenced by svm_eval_nodes().