Blender V5.0
bsdf_principled_hair_chiang.h File Reference
#include <cfenv>
#include "kernel/types.h"
#include "kernel/closure/bsdf_util.h"
#include "kernel/util/colorspace.h"

Go to the source code of this file.

Classes

struct  ChiangHairBSDF

Functions

ccl_device_inline float delta_phi (const int p, const float gamma_o, const float gamma_t)
ccl_device_inline float wrap_angle (const float a)
ccl_device_inline float logistic (const float x, const float s)
ccl_device_inline float logistic_cdf (const float x, const float s)
ccl_device_inline float bessel_I0 (float x)
ccl_device_inline float log_bessel_I0 (const float x)
ccl_device_inline float trimmed_logistic (const float x, const float s)
ccl_device_inline float sample_trimmed_logistic (const float u, const float s)
ccl_device_inline float azimuthal_scattering (float phi, const int p, const float s, float gamma_o, const float gamma_t)
ccl_device_inline float longitudinal_scattering (float sin_theta_i, const float cos_theta_i, const float sin_theta_o, const float cos_theta_o, const float v)
ccl_device_inline void hair_attenuation (KernelGlobals kg, const float f, Spectrum T, ccl_private Spectrum *Ap, ccl_private float *Ap_energy)
ccl_device_inline void hair_alpha_angles (const float sin_theta_o, const float cos_theta_o, const float alpha, ccl_private float *angles)
ccl_device Spectrum bsdf_hair_chiang_eval (KernelGlobals kg, const ccl_private ShaderData *sd, const ccl_private ShaderClosure *sc, const float3 wo, ccl_private float *pdf)
ccl_device int bsdf_hair_chiang_sample (KernelGlobals kg, const ccl_private ShaderClosure *sc, ccl_private ShaderData *sd, float3 rand, ccl_private Spectrum *eval, ccl_private float3 *wo, ccl_private float *pdf, ccl_private float2 *sampled_roughness)
ccl_device void bsdf_hair_chiang_blur (ccl_private ShaderClosure *sc, const float roughness)
ccl_device Spectrum bsdf_hair_chiang_albedo (const ccl_private ShaderData *sd, const ccl_private ShaderClosure *sc)

Function Documentation

◆ azimuthal_scattering()

ccl_device_inline float azimuthal_scattering ( float phi,
const int p,
const float s,
float gamma_o,
const float gamma_t )

◆ bessel_I0()

ccl_device_inline float bessel_I0 ( float x)

Definition at line 76 of file bsdf_principled_hair_chiang.h.

References ccl_device_inline, i, sqr, and x.

Referenced by log_bessel_I0(), and longitudinal_scattering().

◆ bsdf_hair_chiang_albedo()

ccl_device Spectrum bsdf_hair_chiang_albedo ( const ccl_private ShaderData * sd,
const ccl_private ShaderClosure * sc )

◆ bsdf_hair_chiang_blur()

ccl_device void bsdf_hair_chiang_blur ( ccl_private ShaderClosure * sc,
const float roughness )

Definition at line 457 of file bsdf_principled_hair_chiang.h.

References ccl_device, ccl_private, fmaxf, and ChiangHairBSDF::v.

Referenced by bsdf_blur().

◆ bsdf_hair_chiang_eval()

◆ bsdf_hair_chiang_sample()

◆ delta_phi()

◆ hair_alpha_angles()

ccl_device_inline void hair_alpha_angles ( const float sin_theta_o,
const float cos_theta_o,
const float alpha,
ccl_private float * angles )

◆ hair_attenuation()

◆ log_bessel_I0()

ccl_device_inline float log_bessel_I0 ( const float x)

Definition at line 97 of file bsdf_principled_hair_chiang.h.

References bessel_I0(), ccl_device_inline, logf, M_LN_2PI_F, and x.

Referenced by longitudinal_scattering().

◆ logistic()

ccl_device_inline float logistic ( const float x,
const float s )

Definition at line 58 of file bsdf_principled_hair_chiang.h.

References ccl_device_inline, expf, fabsf, sqr, v, and x.

Referenced by trimmed_logistic().

◆ logistic_cdf()

ccl_device_inline float logistic_cdf ( const float x,
const float s )

Definition at line 65 of file bsdf_principled_hair_chiang.h.

References ccl_device_inline, expf, and x.

Referenced by sample_trimmed_logistic(), and trimmed_logistic().

◆ longitudinal_scattering()

ccl_device_inline float longitudinal_scattering ( float sin_theta_i,
const float cos_theta_i,
const float sin_theta_o,
const float cos_theta_o,
const float v )

◆ sample_trimmed_logistic()

ccl_device_inline float sample_trimmed_logistic ( const float u,
const float s )

Definition at line 119 of file bsdf_principled_hair_chiang.h.

References ccl_device_inline, clamp(), logf, logistic_cdf(), M_PI_F, and x.

Referenced by bsdf_hair_chiang_sample().

◆ trimmed_logistic()

ccl_device_inline float trimmed_logistic ( const float x,
const float s )

◆ wrap_angle()

ccl_device_inline float wrap_angle ( const float a)