Blender  V2.93
Functions
kernel_subsurface.h File Reference

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline float3 subsurface_scatter_eval (ShaderData *sd, const ShaderClosure *sc, float disk_r, float r, bool all)
 
ccl_device_inline float3 subsurface_scatter_walk_eval (ShaderData *sd, const ShaderClosure *sc, float3 throughput, bool all)
 
ccl_device void subsurface_scatter_setup_diffuse_bsdf (KernelGlobals *kg, ShaderData *sd, ClosureType type, float roughness, float3 weight, float3 N)
 
ccl_device float3 subsurface_color_pow (float3 color, float exponent)
 
ccl_device void subsurface_color_bump_blur (KernelGlobals *kg, ShaderData *sd, ccl_addr_space PathState *state, float3 *eval, float3 *N)
 
ccl_device_inline int subsurface_scatter_disk (KernelGlobals *kg, LocalIntersection *ss_isect, ShaderData *sd, const ShaderClosure *sc, uint *lcg_state, float disk_u, float disk_v, bool all)
 
ccl_device_noinline void subsurface_scatter_multi_setup (KernelGlobals *kg, LocalIntersection *ss_isect, int hit, ShaderData *sd, ccl_addr_space PathState *state, ClosureType type, float roughness)
 
ccl_device void subsurface_random_walk_remap (const float A, const float d, float *sigma_t, float *alpha)
 
ccl_device void subsurface_random_walk_coefficients (const ShaderClosure *sc, float3 *sigma_t, float3 *alpha, float3 *weight)
 
ccl_device_forceinline float eval_phase_dwivedi (float v, float phase_log, float cos_theta)
 
ccl_device_forceinline float sample_phase_dwivedi (float v, float phase_log, float rand)
 
ccl_device_forceinline float diffusion_length_dwivedi (float alpha)
 
ccl_device_forceinline float3 direction_from_cosine (float3 D, float cos_theta, float randv)
 
ccl_device_forceinline float3 subsurface_random_walk_pdf (float3 sigma_t, float t, bool hit, float3 *transmittance)
 
ccl_device_noinline bool subsurface_random_walk (KernelGlobals *kg, LocalIntersection *ss_isect, ShaderData *sd, ccl_addr_space PathState *state, const ShaderClosure *sc, const float bssrdf_u, const float bssrdf_v, bool all)
 
ccl_device_inline int subsurface_scatter_multi_intersect (KernelGlobals *kg, LocalIntersection *ss_isect, ShaderData *sd, ccl_addr_space PathState *state, const ShaderClosure *sc, uint *lcg_state, float bssrdf_u, float bssrdf_v, bool all)
 

Function Documentation

◆ diffusion_length_dwivedi()

ccl_device_forceinline float diffusion_length_dwivedi ( float  alpha)

Definition at line 424 of file kernel_subsurface.h.

References alpha, powf, and sqrtf.

Referenced by subsurface_random_walk().

◆ direction_from_cosine()

ccl_device_forceinline float3 direction_from_cosine ( float3  D,
float  cos_theta,
float  randv 
)

◆ eval_phase_dwivedi()

ccl_device_forceinline float eval_phase_dwivedi ( float  v,
float  phase_log,
float  cos_theta 
)

Definition at line 410 of file kernel_subsurface.h.

References v.

Referenced by subsurface_random_walk().

◆ sample_phase_dwivedi()

ccl_device_forceinline float sample_phase_dwivedi ( float  v,
float  phase_log,
float  rand 
)

Definition at line 416 of file kernel_subsurface.h.

References expf, and v.

Referenced by subsurface_random_walk().

◆ subsurface_color_bump_blur()

ccl_device void subsurface_color_bump_blur ( KernelGlobals *  kg,
ShaderData sd,
ccl_addr_space PathState state,
float3 eval,
float3 N 
)

◆ subsurface_color_pow()

ccl_device float3 subsurface_color_pow ( float3  color,
float  exponent 
)

Definition at line 133 of file kernel_subsurface.h.

References max, powf, sqrtf, float3::x, float3::y, float3::z, and zero_float3().

Referenced by subsurface_color_bump_blur().

◆ subsurface_random_walk()

ccl_device_noinline bool subsurface_random_walk ( KernelGlobals *  kg,
LocalIntersection ss_isect,
ShaderData sd,
ccl_addr_space PathState state,
const ShaderClosure sc,
const float  bssrdf_u,
const float  bssrdf_v,
bool  all 
)

◆ subsurface_random_walk_coefficients()

ccl_device void subsurface_random_walk_coefficients ( const ShaderClosure sc,
float3 sigma_t,
float3 alpha,
float3 weight 
)

◆ subsurface_random_walk_pdf()

ccl_device_forceinline float3 subsurface_random_walk_pdf ( float3  sigma_t,
float  t,
bool  hit,
float3 transmittance 
)

Definition at line 441 of file kernel_subsurface.h.

References T, t, and volume_color_transmittance().

Referenced by subsurface_random_walk().

◆ subsurface_random_walk_remap()

ccl_device void subsurface_random_walk_remap ( const float  A,
const float  d,
float sigma_t,
float alpha 
)

Definition at line 361 of file kernel_subsurface.h.

References A, alpha, expf, fmaxf, and sqr().

Referenced by subsurface_random_walk_coefficients().

◆ subsurface_scatter_disk()

ccl_device_inline int subsurface_scatter_disk ( KernelGlobals *  kg,
LocalIntersection ss_isect,
ShaderData sd,
const ShaderClosure sc,
uint lcg_state,
float  disk_u,
float  disk_v,
bool  all 
)

◆ subsurface_scatter_eval()

CCL_NAMESPACE_BEGIN ccl_device_inline float3 subsurface_scatter_eval ( ShaderData sd,
const ShaderClosure sc,
float  disk_r,
float  r,
bool  all 
)

◆ subsurface_scatter_multi_intersect()

ccl_device_inline int subsurface_scatter_multi_intersect ( KernelGlobals *  kg,
LocalIntersection ss_isect,
ShaderData sd,
ccl_addr_space PathState state,
const ShaderClosure sc,
uint lcg_state,
float  bssrdf_u,
float  bssrdf_v,
bool  all 
)

◆ subsurface_scatter_multi_setup()

ccl_device_noinline void subsurface_scatter_multi_setup ( KernelGlobals *  kg,
LocalIntersection ss_isect,
int  hit,
ShaderData sd,
ccl_addr_space PathState state,
ClosureType  type,
float  roughness 
)

◆ subsurface_scatter_setup_diffuse_bsdf()

ccl_device void subsurface_scatter_setup_diffuse_bsdf ( KernelGlobals *  kg,
ShaderData sd,
ClosureType  type,
float  roughness,
float3  weight,
float3  N 
)

◆ subsurface_scatter_walk_eval()

ccl_device_inline float3 subsurface_scatter_walk_eval ( ShaderData sd,
const ShaderClosure sc,
float3  throughput,
bool  all 
)

Definition at line 69 of file kernel_subsurface.h.

References all(), and CLOSURE_IS_BSSRDF.

Referenced by subsurface_random_walk().