Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | Bssrdf |
Macros | |
#define | BURLEY_TRUNCATE 16.0f |
#define | BURLEY_TRUNCATE_CDF 0.9963790093708328f |
Typedefs | |
typedef CCL_NAMESPACE_BEGIN struct Bssrdf | Bssrdf |
typedef CCL_NAMESPACE_BEGIN struct Bssrdf Bssrdf |
ccl_device_inline ccl_private Bssrdf* bssrdf_alloc | ( | ccl_private ShaderData * | sd, |
float3 | weight | ||
) |
Definition at line 259 of file bssrdf.h.
References average(), bssrdf(), ccl_private, closure_alloc(), CLOSURE_NONE_ID, CLOSURE_WEIGHT_CUTOFF, fabsf, and NULL.
Referenced by CBSSRDFClosure::alloc(), and svm_node_closure_bsdf().
ccl_device_inline float3 bssrdf_burley_compatible_mfp | ( | float3 | r | ) |
Definition at line 101 of file bssrdf.h.
Referenced by bssrdf_burley_setup().
ccl_device float bssrdf_burley_eval | ( | const float | d, |
float | r | ||
) |
Definition at line 118 of file bssrdf.h.
References BURLEY_TRUNCATE, expf, and r.
Referenced by bssrdf_burley_pdf().
ccl_device_inline float bssrdf_burley_fitting | ( | float | A | ) |
ccl_device float bssrdf_burley_pdf | ( | const float | d, |
float | r | ||
) |
Definition at line 138 of file bssrdf.h.
References bssrdf_burley_eval(), BURLEY_TRUNCATE_CDF, and r.
Referenced by bssrdf_eval().
ccl_device_forceinline float bssrdf_burley_root_find | ( | float | xi | ) |
ccl_device void bssrdf_burley_sample | ( | const float | d, |
float | xi, | ||
ccl_private float * | r, | ||
ccl_private float * | h | ||
) |
Definition at line 187 of file bssrdf.h.
References bssrdf_burley_root_find(), BURLEY_TRUNCATE, BURLEY_TRUNCATE_CDF, r, and safe_sqrtf().
Referenced by bssrdf_sample().
ccl_device void bssrdf_burley_setup | ( | ccl_private Bssrdf * | bssrdf | ) |
Definition at line 106 of file bssrdf.h.
References A, bssrdf(), bssrdf_burley_compatible_mfp(), bssrdf_burley_fitting(), l, and make_float3.
ccl_device float bssrdf_dipole_compute_alpha_prime | ( | float | rd, |
float | fourthirdA | ||
) |
Definition at line 27 of file bssrdf.h.
References bssrdf_dipole_compute_Rd().
Referenced by bssrdf_setup_radius().
ccl_device float bssrdf_dipole_compute_Rd | ( | float | alpha_prime, |
float | fourthirdA | ||
) |
Definition at line 21 of file bssrdf.h.
Referenced by bssrdf_dipole_compute_alpha_prime().
ccl_device_forceinline float3 bssrdf_eval | ( | const float3 | radius, |
float | r | ||
) |
Definition at line 244 of file bssrdf.h.
References bssrdf_burley_pdf(), make_float3, r, float3::x, float3::y, and float3::z.
Referenced by bssrdf_pdf(), and subsurface_disk_eval().
ccl_device float bssrdf_num_channels | ( | const float3 | radius | ) |
Definition at line 201 of file bssrdf.h.
References channels(), float3::x, float3::y, and float3::z.
Referenced by bssrdf_pdf(), and bssrdf_sample().
ccl_device_forceinline float bssrdf_pdf | ( | const float3 | radius, |
float | r | ||
) |
Definition at line 251 of file bssrdf.h.
References bssrdf_eval(), bssrdf_num_channels(), r, float3::x, float3::y, and float3::z.
Referenced by subsurface_disk_eval().
ccl_device void bssrdf_sample | ( | const float3 | radius, |
float | xi, | ||
ccl_private float * | r, | ||
ccl_private float * | h | ||
) |
Definition at line 216 of file bssrdf.h.
References bssrdf_burley_sample(), bssrdf_num_channels(), r, float3::x, float3::y, and float3::z.
Referenced by subsurface_disk().
ccl_device int bssrdf_setup | ( | ccl_private ShaderData * | sd, |
ccl_private Bssrdf * | bssrdf, | ||
ClosureType | type, | ||
const float | ior | ||
) |
Definition at line 273 of file bssrdf.h.
References average(), bsdf_alloc(), bsdf_diffuse_setup(), bsdf_principled_diffuse_retro_reflection_sample_weight(), bsdf_principled_diffuse_setup(), bssrdf(), BSSRDF_MIN_RADIUS, bssrdf_setup_radius(), ccl_private, fabsf, usdtokens::ior(), make_float3, PRINCIPLED_DIFFUSE_LAMBERT, PRINCIPLED_DIFFUSE_RETRO_REFLECTION, SD_BSSRDF, type, float3::x, float3::y, and float3::z.
Referenced by CBSSRDFClosure::alloc(), and svm_node_closure_bsdf().
ccl_device void bssrdf_setup_radius | ( | ccl_private Bssrdf * | bssrdf, |
const ClosureType | type, | ||
const float | eta | ||
) |
Definition at line 56 of file bssrdf.h.
References bssrdf(), bssrdf_dipole_compute_alpha_prime(), CLOSURE_BSSRDF_BURLEY_ID, CLOSURE_BSSRDF_RANDOM_WALK_FIXED_RADIUS_ID, M_1_PI_F, make_float3, one_float3(), sqrt(), and type.
Referenced by bssrdf_setup().