|
Blender V5.0
|
#include "kernel/types.h"#include "kernel/closure/alloc.h"#include "kernel/closure/bsdf_diffuse.h"Go to the source code of this file.
Classes | |
| struct | Bssrdf |
Macros | |
| #define | BURLEY_TRUNCATE 16.0f |
| #define | BURLEY_TRUNCATE_CDF 0.9963790093708328f |
| #define BURLEY_TRUNCATE 16.0f |
Definition at line 99 of file bssrdf.h.
Referenced by bssrdf_burley_eval(), and bssrdf_burley_sample().
| #define BURLEY_TRUNCATE_CDF 0.9963790093708328f |
Definition at line 100 of file bssrdf.h.
Referenced by bssrdf_burley_pdf(), and bssrdf_burley_sample().
| ccl_device_inline ccl_private Bssrdf * bssrdf_alloc | ( | ccl_private ShaderData * | sd, |
| Spectrum | weight ) |
Definition at line 270 of file bssrdf.h.
References average(), bssrdf(), ccl_device_inline, ccl_private, closure_alloc(), CLOSURE_NONE_ID, CLOSURE_WEIGHT_CUTOFF, and fabsf.
Referenced by osl_closure_bssrdf_setup(), osl_closure_subsurface_bssrdf_setup(), and svm_node_closure_bsdf().
| ccl_device_inline Spectrum bssrdf_burley_compatible_mfp | ( | Spectrum | r | ) |
Definition at line 110 of file bssrdf.h.
References ccl_device_inline, and M_1_PI_F.
Referenced by bssrdf_burley_setup().
| ccl_device float bssrdf_burley_eval | ( | const float | d, |
| const float | r ) |
Definition at line 129 of file bssrdf.h.
References BURLEY_TRUNCATE, ccl_device, and expf.
Referenced by bssrdf_burley_pdf().
| ccl_device_inline float bssrdf_burley_fitting | ( | const float | A | ) |
Definition at line 102 of file bssrdf.h.
References A, and ccl_device_inline.
Referenced by bssrdf_burley_setup().
| ccl_device float bssrdf_burley_pdf | ( | const float | d, |
| const float | r ) |
Definition at line 150 of file bssrdf.h.
References bssrdf_burley_eval(), BURLEY_TRUNCATE_CDF, and ccl_device.
Referenced by bssrdf_eval().
| ccl_device_forceinline float bssrdf_burley_root_find | ( | const float | xi | ) |
Definition at line 163 of file bssrdf.h.
References ccl_device_forceinline, expf, fabsf, fmaxf, and i.
Referenced by bssrdf_burley_sample().
| ccl_device void bssrdf_burley_sample | ( | const float | d, |
| const float | xi, | ||
| ccl_private float * | r, | ||
| ccl_private float * | h ) |
Definition at line 197 of file bssrdf.h.
References bssrdf_burley_root_find(), BURLEY_TRUNCATE, BURLEY_TRUNCATE_CDF, ccl_device, ccl_private, and safe_sqrtf().
Referenced by bssrdf_sample().
| ccl_device void bssrdf_burley_setup | ( | ccl_private Bssrdf * | bssrdf | ) |
Definition at line 115 of file bssrdf.h.
References A, bssrdf(), bssrdf_burley_compatible_mfp(), bssrdf_burley_fitting(), ccl_device, ccl_private, FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, i, and l.
| ccl_device float bssrdf_dipole_compute_alpha_prime | ( | const float | rd, |
| const float | fourthirdA ) |
Definition at line 36 of file bssrdf.h.
References bssrdf_dipole_compute_Rd(), ccl_device, and i.
Referenced by bssrdf_setup_radius().
| ccl_device float bssrdf_dipole_compute_Rd | ( | const float | alpha_prime, |
| const float | fourthirdA ) |
Definition at line 30 of file bssrdf.h.
References ccl_device, expf, and sqrtf.
Referenced by bssrdf_dipole_compute_alpha_prime().
| ccl_device_forceinline Spectrum bssrdf_eval | ( | const Spectrum | radius, |
| const float | r ) |
Definition at line 253 of file bssrdf.h.
References bssrdf_burley_pdf(), ccl_device_forceinline, FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, i, and result.
Referenced by bssrdf_pdf().
| ccl_device float bssrdf_num_channels | ( | const Spectrum | radius | ) |
Definition at line 211 of file bssrdf.h.
References ccl_device, FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, and i.
Referenced by bssrdf_pdf(), and bssrdf_sample().
| ccl_device_forceinline float bssrdf_pdf | ( | const Spectrum | radius, |
| const float | r ) |
Definition at line 262 of file bssrdf.h.
References bssrdf_eval(), bssrdf_num_channels(), ccl_device_forceinline, and reduce_add().
| ccl_device void bssrdf_sample | ( | const Spectrum | radius, |
| float | xi, | ||
| ccl_private float * | r, | ||
| ccl_private float * | h ) |
Definition at line 222 of file bssrdf.h.
References bssrdf_burley_sample(), bssrdf_num_channels(), ccl_device, ccl_private, FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, i, and sum().
| ccl_device int bssrdf_setup | ( | ccl_private ShaderData * | sd, |
| ccl_private Bssrdf * | bssrdf, | ||
| const int | path_flag, | ||
| ClosureType | type ) |
Definition at line 288 of file bssrdf.h.
References average(), bsdf_alloc(), bsdf_diffuse_setup(), bssrdf(), BSSRDF_MIN_RADIUS, bssrdf_setup_radius(), ccl_device, ccl_private, clamp(), CLOSURE_BSSRDF_BURLEY_ID, CLOSURE_BSSRDF_RANDOM_WALK_SKIN_ID, CLOSURE_NONE_ID, fabsf, flag, FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, i, PATH_RAY_DIFFUSE_ANCESTOR, SD_BSSRDF, SPECTRUM_CHANNELS, and zero_spectrum.
Referenced by osl_closure_bssrdf_setup(), osl_closure_subsurface_bssrdf_setup(), and svm_node_closure_bsdf().
| ccl_device void bssrdf_setup_radius | ( | ccl_private Bssrdf * | bssrdf, |
| const ClosureType | type ) |
Definition at line 66 of file bssrdf.h.
References bssrdf(), bssrdf_dipole_compute_alpha_prime(), ccl_device, ccl_private, CLOSURE_BSSRDF_BURLEY_ID, CLOSURE_BSSRDF_RANDOM_WALK_ID, FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, i, M_1_PI_F, one_spectrum, and sqrt.
Referenced by bssrdf_setup().