Blender  V3.3
Functions
kernel/integrator/shader_eval.h File Reference
#include "kernel/closure/alloc.h"
#include "kernel/closure/bsdf.h"
#include "kernel/closure/bsdf_util.h"
#include "kernel/closure/emissive.h"
#include "kernel/film/accumulate.h"
#include "kernel/svm/svm.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline void shader_prepare_surface_closures (KernelGlobals kg, ConstIntegratorState state, ccl_private ShaderData *sd, const uint32_t path_flag)
 
ccl_device_inline bool shader_bsdf_is_transmission (ccl_private const ShaderData *sd, const float3 omega_in)
 
ccl_device_forceinline bool _shader_bsdf_exclude (ClosureType type, uint light_shader_flags)
 
ccl_device_inline float _shader_bsdf_multi_eval (KernelGlobals kg, ccl_private ShaderData *sd, const float3 omega_in, const bool is_transmission, ccl_private const ShaderClosure *skip_sc, ccl_private BsdfEval *result_eval, float sum_pdf, float sum_sample_weight, const uint light_shader_flags)
 
ccl_device float shader_bsdf_eval (KernelGlobals kg, ccl_private ShaderData *sd, const float3 omega_in, const bool is_transmission, ccl_private BsdfEval *bsdf_eval, const uint light_shader_flags)
 
ccl_device_inline ccl_private const ShaderClosureshader_bsdf_bssrdf_pick (ccl_private const ShaderData *ccl_restrict sd, ccl_private float *randu)
 
ccl_device_inline float3 shader_bssrdf_sample_weight (ccl_private const ShaderData *ccl_restrict sd, ccl_private const ShaderClosure *ccl_restrict bssrdf_sc)
 
ccl_device int shader_bsdf_sample_closure (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private const ShaderClosure *sc, float randu, float randv, ccl_private BsdfEval *bsdf_eval, ccl_private float3 *omega_in, ccl_private differential3 *domega_in, ccl_private float *pdf)
 
ccl_device float shader_bsdf_average_roughness (ccl_private const ShaderData *sd)
 
ccl_device float3 shader_bsdf_transparency (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device void shader_bsdf_disable_transparency (KernelGlobals kg, ccl_private ShaderData *sd)
 
ccl_device float3 shader_bsdf_alpha (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device float3 shader_bsdf_diffuse (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device float3 shader_bsdf_glossy (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device float3 shader_bsdf_transmission (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device float3 shader_bsdf_average_normal (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device float3 shader_bsdf_ao (KernelGlobals kg, ccl_private const ShaderData *sd, const float ao_factor, ccl_private float3 *N_)
 
ccl_device bool shader_constant_emission_eval (KernelGlobals kg, int shader, ccl_private float3 *eval)
 
ccl_device float3 shader_background_eval (ccl_private const ShaderData *sd)
 
ccl_device float3 shader_emissive_eval (ccl_private const ShaderData *sd)
 
ccl_device float3 shader_holdout_apply (KernelGlobals kg, ccl_private ShaderData *sd)
 
template<uint node_feature_mask, typename ConstIntegratorGenericState >
ccl_device void shader_eval_surface (KernelGlobals kg, ConstIntegratorGenericState state, ccl_private ShaderData *ccl_restrict sd, ccl_global float *ccl_restrict buffer, uint32_t path_flag, bool use_caustics_storage=false)
 
template<typename ConstIntegratorGenericState >
ccl_device void shader_eval_displacement (KernelGlobals kg, ConstIntegratorGenericState state, ccl_private ShaderData *sd)
 
ccl_device float shader_cryptomatte_id (KernelGlobals kg, int shader)
 

Function Documentation

◆ _shader_bsdf_exclude()

ccl_device_forceinline bool _shader_bsdf_exclude ( ClosureType  type,
uint  light_shader_flags 
)

◆ _shader_bsdf_multi_eval()

ccl_device_inline float _shader_bsdf_multi_eval ( KernelGlobals  kg,
ccl_private ShaderData sd,
const float3  omega_in,
const bool  is_transmission,
ccl_private const ShaderClosure skip_sc,
ccl_private BsdfEval result_eval,
float  sum_pdf,
float  sum_sample_weight,
const uint  light_shader_flags 
)

◆ shader_background_eval()

ccl_device float3 shader_background_eval ( ccl_private const ShaderData sd)

◆ shader_bsdf_alpha()

ccl_device float3 shader_bsdf_alpha ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ shader_bsdf_ao()

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

◆ shader_bsdf_average_normal()

ccl_device float3 shader_bsdf_average_normal ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ shader_bsdf_average_roughness()

ccl_device float shader_bsdf_average_roughness ( ccl_private const ShaderData sd)

◆ shader_bsdf_bssrdf_pick()

ccl_device_inline ccl_private const ShaderClosure* shader_bsdf_bssrdf_pick ( ccl_private const ShaderData *ccl_restrict  sd,
ccl_private float randu 
)

◆ shader_bsdf_diffuse()

ccl_device float3 shader_bsdf_diffuse ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ shader_bsdf_disable_transparency()

ccl_device void shader_bsdf_disable_transparency ( KernelGlobals  kg,
ccl_private ShaderData sd 
)

◆ shader_bsdf_eval()

ccl_device float shader_bsdf_eval ( KernelGlobals  kg,
ccl_private ShaderData sd,
const float3  omega_in,
const bool  is_transmission,
ccl_private BsdfEval bsdf_eval,
const uint  light_shader_flags 
)

◆ shader_bsdf_glossy()

ccl_device float3 shader_bsdf_glossy ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ shader_bsdf_is_transmission()

ccl_device_inline bool shader_bsdf_is_transmission ( ccl_private const ShaderData sd,
const float3  omega_in 
)

Definition at line 183 of file kernel/integrator/shader_eval.h.

References blender::math::dot().

Referenced by shader_bsdf_sample_closure().

◆ shader_bsdf_sample_closure()

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

◆ shader_bsdf_transmission()

ccl_device float3 shader_bsdf_transmission ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ shader_bsdf_transparency()

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

◆ shader_bssrdf_sample_weight()

ccl_device_inline float3 shader_bssrdf_sample_weight ( ccl_private const ShaderData *ccl_restrict  sd,
ccl_private const ShaderClosure *ccl_restrict  bssrdf_sc 
)

◆ shader_constant_emission_eval()

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

◆ shader_cryptomatte_id()

ccl_device float shader_cryptomatte_id ( KernelGlobals  kg,
int  shader 
)

◆ shader_emissive_eval()

ccl_device float3 shader_emissive_eval ( ccl_private const ShaderData sd)

◆ shader_eval_displacement()

template<typename ConstIntegratorGenericState >
ccl_device void shader_eval_displacement ( KernelGlobals  kg,
ConstIntegratorGenericState  state,
ccl_private ShaderData sd 
)

Definition at line 924 of file kernel/integrator/shader_eval.h.

References eval_displacement(), NULL, and state.

Referenced by kernel_displace_evaluate().

◆ shader_eval_surface()

template<uint node_feature_mask, typename ConstIntegratorGenericState >
ccl_device void shader_eval_surface ( KernelGlobals  kg,
ConstIntegratorGenericState  state,
ccl_private ShaderData *ccl_restrict  sd,
ccl_global float *ccl_restrict  buffer,
uint32_t  path_flag,
bool  use_caustics_storage = false 
)

◆ shader_holdout_apply()

ccl_device float3 shader_holdout_apply ( KernelGlobals  kg,
ccl_private ShaderData sd 
)

◆ shader_prepare_surface_closures()

CCL_NAMESPACE_BEGIN ccl_device_inline void shader_prepare_surface_closures ( KernelGlobals  kg,
ConstIntegratorState  state,
ccl_private ShaderData sd,
const uint32_t  path_flag 
)