Blender  V3.3
Functions
bsdf.h File Reference
#include "kernel/closure/bsdf_ashikhmin_velvet.h"
#include "kernel/closure/bsdf_diffuse.h"
#include "kernel/closure/bsdf_oren_nayar.h"
#include "kernel/closure/bsdf_phong_ramp.h"
#include "kernel/closure/bsdf_diffuse_ramp.h"
#include "kernel/closure/bsdf_microfacet.h"
#include "kernel/closure/bsdf_microfacet_multi.h"
#include "kernel/closure/bsdf_reflection.h"
#include "kernel/closure/bsdf_refraction.h"
#include "kernel/closure/bsdf_transparent.h"
#include "kernel/closure/bsdf_ashikhmin_shirley.h"
#include "kernel/closure/bsdf_toon.h"
#include "kernel/closure/bsdf_hair.h"
#include "kernel/closure/bsdf_hair_principled.h"
#include "kernel/closure/bsdf_principled_diffuse.h"
#include "kernel/closure/bsdf_principled_sheen.h"
#include "kernel/closure/bssrdf.h"
#include "kernel/closure/volume.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline float bsdf_get_specular_roughness_squared (ccl_private const ShaderClosure *sc)
 
ccl_device_inline float bsdf_get_roughness_squared (ccl_private const ShaderClosure *sc)
 
ccl_device_inline float bump_shadowing_term (float3 Ng, float3 N, float3 I)
 
ccl_device_inline float shift_cos_in (float cos_in, const float frequency_multiplier)
 
ccl_device_inline int bsdf_sample (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private const ShaderClosure *sc, float randu, float randv, ccl_private float3 *eval, ccl_private float3 *omega_in, ccl_private differential3 *domega_in, ccl_private float *pdf)
 
ccl_device float3 bsdf_eval (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private const ShaderClosure *sc, const float3 omega_in, const bool is_transmission, ccl_private float *pdf)
 
ccl_device void bsdf_blur (KernelGlobals kg, ccl_private ShaderClosure *sc, float roughness)
 

Function Documentation

◆ bsdf_blur()

ccl_device void bsdf_blur ( KernelGlobals  kg,
ccl_private ShaderClosure sc,
float  roughness 
)

◆ bsdf_eval()

ccl_device float3 bsdf_eval ( KernelGlobals  kg,
ccl_private ShaderData sd,
ccl_private const ShaderClosure sc,
const float3  omega_in,
const bool  is_transmission,
ccl_private float pdf 
)

Definition at line 462 of file bsdf.h.

References bsdf_ashikhmin_shirley_eval_reflect(), bsdf_ashikhmin_shirley_eval_transmit(), bsdf_ashikhmin_velvet_eval_reflect(), bsdf_ashikhmin_velvet_eval_transmit(), bsdf_diffuse_eval_reflect(), bsdf_diffuse_eval_transmit(), bsdf_diffuse_toon_eval_reflect(), bsdf_diffuse_toon_eval_transmit(), bsdf_glossy_toon_eval_reflect(), bsdf_glossy_toon_eval_transmit(), bsdf_hair_reflection_eval_reflect(), bsdf_hair_reflection_eval_transmit(), bsdf_hair_transmission_eval_reflect(), bsdf_hair_transmission_eval_transmit(), bsdf_microfacet_beckmann_eval_reflect(), bsdf_microfacet_beckmann_eval_transmit(), bsdf_microfacet_ggx_eval_reflect(), bsdf_microfacet_ggx_eval_transmit(), bsdf_microfacet_multi_ggx_eval_reflect(), bsdf_microfacet_multi_ggx_eval_transmit(), bsdf_microfacet_multi_ggx_glass_eval_reflect(), bsdf_microfacet_multi_ggx_glass_eval_transmit(), bsdf_oren_nayar_eval_reflect(), bsdf_oren_nayar_eval_transmit(), bsdf_principled_diffuse_eval_reflect(), bsdf_principled_diffuse_eval_transmit(), bsdf_principled_hair_eval(), bsdf_principled_sheen_eval_reflect(), bsdf_principled_sheen_eval_transmit(), bsdf_reflection_eval_reflect(), bsdf_reflection_eval_transmit(), bsdf_refraction_eval_reflect(), bsdf_refraction_eval_transmit(), bsdf_translucent_eval_reflect(), bsdf_translucent_eval_transmit(), bsdf_transparent_eval_reflect(), bsdf_transparent_eval_transmit(), bump_shadowing_term(), CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID, CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, CLOSURE_BSDF_DIFFUSE_ID, CLOSURE_BSDF_DIFFUSE_RAMP_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_ID, CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID, CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID, CLOSURE_BSDF_MICROFACET_GGX_FRESNEL_ID, CLOSURE_BSDF_MICROFACET_GGX_ID, CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_FRESNEL_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_FRESNEL_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID, CLOSURE_BSDF_OREN_NAYAR_ID, CLOSURE_BSDF_PHONG_RAMP_ID, CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID, CLOSURE_BSDF_PRINCIPLED_SHEEN_ID, CLOSURE_BSDF_REFLECTION_ID, CLOSURE_BSDF_REFRACTION_ID, CLOSURE_BSDF_TRANSLUCENT_ID, CLOSURE_BSDF_TRANSPARENT_ID, CLOSURE_IS_BSDF_DIFFUSE, blender::math::dot(), isequal(), kernel_assert, kernel_data_fetch, shift_cos_in(), float3::x, float3::y, float3::z, and zero_float3().

Referenced by _shader_bsdf_multi_eval(), integrate_surface_bsdf_bssrdf_bounce(), shader_bsdf_eval(), and shader_bsdf_sample_closure().

◆ bsdf_get_roughness_squared()

ccl_device_inline float bsdf_get_roughness_squared ( ccl_private const ShaderClosure sc)

◆ bsdf_get_specular_roughness_squared()

CCL_NAMESPACE_BEGIN ccl_device_inline float bsdf_get_specular_roughness_squared ( ccl_private const ShaderClosure sc)

◆ bsdf_sample()

ccl_device_inline int bsdf_sample ( KernelGlobals  kg,
ccl_private ShaderData sd,
ccl_private const ShaderClosure sc,
float  randu,
float  randv,
ccl_private float3 eval,
ccl_private float3 omega_in,
ccl_private differential3 domega_in,
ccl_private float pdf 
)

Definition at line 101 of file bsdf.h.

References bsdf_ashikhmin_shirley_sample(), bsdf_ashikhmin_velvet_sample(), bsdf_diffuse_sample(), bsdf_diffuse_toon_sample(), bsdf_get_specular_roughness_squared(), bsdf_glossy_toon_sample(), bsdf_hair_reflection_sample(), bsdf_hair_transmission_sample(), bsdf_microfacet_beckmann_sample(), bsdf_microfacet_ggx_sample(), bsdf_microfacet_multi_ggx_glass_sample(), bsdf_microfacet_multi_ggx_sample(), bsdf_oren_nayar_sample(), bsdf_principled_diffuse_sample(), bsdf_principled_hair_sample(), bsdf_principled_sheen_sample(), bsdf_reflection_sample(), bsdf_refraction_sample(), bsdf_translucent_sample(), bsdf_transparent_sample(), bump_shadowing_term(), CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID, CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, CLOSURE_BSDF_DIFFUSE_ID, CLOSURE_BSDF_DIFFUSE_RAMP_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_ID, CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID, CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID, CLOSURE_BSDF_MICROFACET_GGX_FRESNEL_ID, CLOSURE_BSDF_MICROFACET_GGX_ID, CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_FRESNEL_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_FRESNEL_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID, CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID, CLOSURE_BSDF_OREN_NAYAR_ID, CLOSURE_BSDF_PHONG_RAMP_ID, CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID, CLOSURE_BSDF_PRINCIPLED_SHEEN_ID, CLOSURE_BSDF_REFLECTION_ID, CLOSURE_BSDF_REFRACTION_ID, CLOSURE_BSDF_TRANSLUCENT_ID, CLOSURE_BSDF_TRANSPARENT_ID, blender::math::dot(), isequal(), kernel_assert, kernel_data, kernel_data_fetch, label, LABEL_DIFFUSE, LABEL_NONE, LABEL_TRANSMIT, LABEL_TRANSMIT_TRANSPARENT, PRIMITIVE_CURVE, and shift_cos_in().

Referenced by shader_bsdf_sample_closure().

◆ bump_shadowing_term()

ccl_device_inline float bump_shadowing_term ( float3  Ng,
float3  N,
float3  I 
)

Definition at line 70 of file bsdf.h.

References blender::math::dot(), usdtokens::g(), I, N, blender::math::safe_divide(), and sqr().

Referenced by bsdf_eval(), and bsdf_sample().

◆ shift_cos_in()

ccl_device_inline float shift_cos_in ( float  cos_in,
const float  frequency_multiplier 
)

Definition at line 89 of file bsdf.h.

References angle(), cosf, fast_acosf(), max, and min.

Referenced by bsdf_eval(), and bsdf_sample().