Blender  V2.93
Functions
kernel_shader.h File Reference
#include "kernel/closure/alloc.h"
#include "kernel/closure/bsdf_util.h"
#include "kernel/closure/bsdf.h"
#include "kernel/closure/emissive.h"
#include "kernel/svm/svm.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_noinline void shader_setup_from_ray (KernelGlobals *kg, ShaderData *sd, const Intersection *isect, const Ray *ray)
 
ccl_device_inline void shader_setup_from_sample (KernelGlobals *kg, ShaderData *sd, const float3 P, const float3 Ng, const float3 I, int shader, int object, int prim, float u, float v, float t, float time, bool object_space, int lamp)
 
ccl_device void shader_setup_from_displace (KernelGlobals *kg, ShaderData *sd, int object, int prim, float u, float v)
 
ccl_device_inline void shader_setup_from_background (KernelGlobals *kg, ShaderData *sd, const Ray *ray)
 
ccl_device_inline void shader_prepare_closures (ShaderData *sd, ccl_addr_space PathState *state)
 
ccl_device_inline void _shader_bsdf_multi_eval (KernelGlobals *kg, ShaderData *sd, const float3 omega_in, float *pdf, const ShaderClosure *skip_sc, BsdfEval *result_eval, float sum_pdf, float sum_sample_weight)
 
ccl_device void shader_bsdf_eval (KernelGlobals *kg, ShaderData *sd, const float3 omega_in, BsdfEval *eval, float light_pdf, bool use_mis)
 
ccl_device_inline const ShaderClosureshader_bsdf_pick (ShaderData *sd, float *randu)
 
ccl_device_inline const ShaderClosureshader_bssrdf_pick (ShaderData *sd, ccl_addr_space float3 *throughput, float *randu)
 
ccl_device_inline int shader_bsdf_sample (KernelGlobals *kg, ShaderData *sd, float randu, float randv, BsdfEval *bsdf_eval, float3 *omega_in, differential3 *domega_in, float *pdf)
 
ccl_device int shader_bsdf_sample_closure (KernelGlobals *kg, ShaderData *sd, const ShaderClosure *sc, float randu, float randv, BsdfEval *bsdf_eval, float3 *omega_in, differential3 *domega_in, float *pdf)
 
ccl_device float shader_bsdf_average_roughness (ShaderData *sd)
 
ccl_device void shader_bsdf_blur (KernelGlobals *kg, ShaderData *sd, float roughness)
 
ccl_device float3 shader_bsdf_transparency (KernelGlobals *kg, const ShaderData *sd)
 
ccl_device void shader_bsdf_disable_transparency (KernelGlobals *kg, ShaderData *sd)
 
ccl_device float3 shader_bsdf_alpha (KernelGlobals *kg, ShaderData *sd)
 
ccl_device float3 shader_bsdf_diffuse (KernelGlobals *kg, ShaderData *sd)
 
ccl_device float3 shader_bsdf_glossy (KernelGlobals *kg, ShaderData *sd)
 
ccl_device float3 shader_bsdf_transmission (KernelGlobals *kg, ShaderData *sd)
 
ccl_device float3 shader_bsdf_average_normal (KernelGlobals *kg, ShaderData *sd)
 
ccl_device float3 shader_bsdf_ao (KernelGlobals *kg, ShaderData *sd, float ao_factor, float3 *N_)
 
ccl_device bool shader_constant_emission_eval (KernelGlobals *kg, int shader, float3 *eval)
 
ccl_device float3 shader_background_eval (ShaderData *sd)
 
ccl_device float3 shader_emissive_eval (ShaderData *sd)
 
ccl_device float3 shader_holdout_apply (KernelGlobals *kg, ShaderData *sd)
 
ccl_device void shader_eval_surface (KernelGlobals *kg, ShaderData *sd, ccl_addr_space PathState *state, ccl_global float *buffer, int path_flag)
 
ccl_device void shader_eval_displacement (KernelGlobals *kg, ShaderData *sd, ccl_addr_space PathState *state)
 
ccl_device float shader_cryptomatte_id (KernelGlobals *kg, int shader)
 

Function Documentation

◆ _shader_bsdf_multi_eval()

ccl_device_inline void _shader_bsdf_multi_eval ( KernelGlobals *  kg,
ShaderData sd,
const float3  omega_in,
float pdf,
const ShaderClosure skip_sc,
BsdfEval result_eval,
float  sum_pdf,
float  sum_sample_weight 
)

Definition at line 553 of file kernel_shader.h.

References bsdf_eval(), bsdf_eval_accum(), CLOSURE_IS_BSDF, kg, and ShaderClosure.

Referenced by shader_bsdf_eval(), and shader_bsdf_sample().

◆ shader_background_eval()

ccl_device float3 shader_background_eval ( ShaderData sd)

◆ shader_bsdf_alpha()

ccl_device float3 shader_bsdf_alpha ( KernelGlobals *  kg,
ShaderData sd 
)

◆ shader_bsdf_ao()

ccl_device float3 shader_bsdf_ao ( KernelGlobals *  kg,
ShaderData sd,
float  ao_factor,
float3 N_ 
)

Definition at line 925 of file kernel_shader.h.

References average(), CLOSURE_IS_BSDF_DIFFUSE, fabsf, is_zero(), N, N_, normalize(), ShaderClosure, and zero_float3().

Referenced by kernel_path_ao().

◆ shader_bsdf_average_normal()

ccl_device float3 shader_bsdf_average_normal ( KernelGlobals *  kg,
ShaderData sd 
)

◆ shader_bsdf_average_roughness()

ccl_device float shader_bsdf_average_roughness ( ShaderData sd)

◆ shader_bsdf_blur()

ccl_device void shader_bsdf_blur ( KernelGlobals *  kg,
ShaderData sd,
float  roughness 
)

Definition at line 820 of file kernel_shader.h.

References bsdf_blur(), CLOSURE_IS_BSDF, kg, usdtokens::roughness(), and ShaderClosure.

Referenced by kernel_path_shader_apply().

◆ shader_bsdf_diffuse()

ccl_device float3 shader_bsdf_diffuse ( KernelGlobals *  kg,
ShaderData sd 
)

◆ shader_bsdf_disable_transparency()

ccl_device void shader_bsdf_disable_transparency ( KernelGlobals *  kg,
ShaderData sd 
)

◆ shader_bsdf_eval()

ccl_device void shader_bsdf_eval ( KernelGlobals *  kg,
ShaderData sd,
const float3  omega_in,
BsdfEval eval,
float  light_pdf,
bool  use_mis 
)

◆ shader_bsdf_glossy()

ccl_device float3 shader_bsdf_glossy ( KernelGlobals *  kg,
ShaderData sd 
)

Definition at line 884 of file kernel_shader.h.

References CLOSURE_IS_BSDF_GLOSSY, ShaderClosure, and zero_float3().

Referenced by kernel_write_data_passes().

◆ shader_bsdf_pick()

ccl_device_inline const ShaderClosure* shader_bsdf_pick ( ShaderData sd,
float randu 
)

Definition at line 637 of file kernel_shader.h.

References CLOSURE_IS_BSDF, CLOSURE_IS_BSDF_OR_BSSRDF, NULL, r, ShaderClosure, and sum().

Referenced by shader_bsdf_sample().

◆ shader_bsdf_sample()

ccl_device_inline int shader_bsdf_sample ( KernelGlobals *  kg,
ShaderData sd,
float  randu,
float  randv,
BsdfEval bsdf_eval,
float3 omega_in,
differential3 domega_in,
float pdf 
)

◆ shader_bsdf_sample_closure()

ccl_device int shader_bsdf_sample_closure ( KernelGlobals *  kg,
ShaderData sd,
const ShaderClosure sc,
float  randu,
float  randv,
BsdfEval bsdf_eval,
float3 omega_in,
differential3 domega_in,
float pdf 
)

◆ shader_bsdf_transmission()

ccl_device float3 shader_bsdf_transmission ( KernelGlobals *  kg,
ShaderData sd 
)

Definition at line 898 of file kernel_shader.h.

References CLOSURE_IS_BSDF_TRANSMISSION, ShaderClosure, and zero_float3().

Referenced by kernel_write_data_passes().

◆ shader_bsdf_transparency()

ccl_device float3 shader_bsdf_transparency ( KernelGlobals *  kg,
const ShaderData sd 
)

◆ shader_bssrdf_pick()

ccl_device_inline const ShaderClosure* shader_bssrdf_pick ( ShaderData sd,
ccl_addr_space float3 throughput,
float randu 
)

◆ shader_constant_emission_eval()

ccl_device bool shader_constant_emission_eval ( KernelGlobals *  kg,
int  shader,
float3 eval 
)

◆ shader_cryptomatte_id()

ccl_device float shader_cryptomatte_id ( KernelGlobals *  kg,
int  shader 
)

Definition at line 1361 of file kernel_shader.h.

References kernel_tex_fetch, shader(), and SHADER_MASK.

Referenced by kernel_write_data_passes().

◆ shader_emissive_eval()

ccl_device float3 shader_emissive_eval ( ShaderData sd)

◆ shader_eval_displacement()

ccl_device void shader_eval_displacement ( KernelGlobals *  kg,
ShaderData sd,
ccl_addr_space PathState state 
)

◆ shader_eval_surface()

ccl_device void shader_eval_surface ( KernelGlobals *  kg,
ShaderData sd,
ccl_addr_space PathState state,
ccl_global float buffer,
int  path_flag 
)

◆ shader_holdout_apply()

ccl_device float3 shader_holdout_apply ( KernelGlobals *  kg,
ShaderData sd 
)

◆ shader_prepare_closures()

ccl_device_inline void shader_prepare_closures ( ShaderData sd,
ccl_addr_space PathState state 
)

Definition at line 527 of file kernel_shader.h.

References CLOSURE_IS_BSDF_OR_BSSRDF, max, ShaderClosure, state, and sum().

Referenced by kernel_path_integrate(), and kernel_shader_eval().

◆ shader_setup_from_background()

ccl_device_inline void shader_setup_from_background ( KernelGlobals *  kg,
ShaderData sd,
const Ray ray 
)

◆ shader_setup_from_displace()

ccl_device void shader_setup_from_displace ( KernelGlobals *  kg,
ShaderData sd,
int  object,
int  prim,
float  u,
float  v 
)

◆ shader_setup_from_ray()

CCL_NAMESPACE_BEGIN ccl_device_noinline void shader_setup_from_ray ( KernelGlobals *  kg,
ShaderData sd,
const Intersection isect,
const Ray ray 
)

◆ shader_setup_from_sample()

ccl_device_inline void shader_setup_from_sample ( KernelGlobals *  kg,
ShaderData sd,
const float3  P,
const float3  Ng,
const float3  I,
int  shader,
int  object,
int  prim,
float  u,
float  v,
float  t,
float  time,
bool  object_space,
int  lamp 
)