Blender V4.3
surface_shader.h File Reference

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline void surface_shader_prepare_closures (KernelGlobals kg, ConstIntegratorState state, ccl_private ShaderData *sd, const uint32_t path_flag)
 
ccl_device_forceinline bool _surface_shader_exclude (ClosureType type, uint light_shader_flags)
 
ccl_device_inline float _surface_shader_bsdf_eval_mis (KernelGlobals kg, ccl_private ShaderData *sd, const float3 wo, 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_inline float surface_shader_bsdf_eval_pdfs (const KernelGlobals kg, ccl_private ShaderData *sd, const float3 wo, ccl_private BsdfEval *result_eval, ccl_private float *pdfs, const uint light_shader_flags)
 
ccl_device float surface_shader_bsdf_eval (KernelGlobals kg, IntegratorState state, ccl_private ShaderData *sd, const float3 wo, ccl_private BsdfEval *bsdf_eval, const uint light_shader_flags)
 
ccl_device_inline ccl_private const ShaderClosuresurface_shader_bsdf_bssrdf_pick (ccl_private const ShaderData *ccl_restrict sd, ccl_private float3 *rand_bsdf)
 
ccl_device_inline Spectrum surface_shader_bssrdf_sample_weight (ccl_private const ShaderData *ccl_restrict sd, ccl_private const ShaderClosure *ccl_restrict bssrdf_sc)
 
ccl_device int surface_shader_bsdf_sample_closure (KernelGlobals kg, ccl_private ShaderData *sd, ccl_private const ShaderClosure *sc, const int path_flag, const float3 rand_bsdf, ccl_private BsdfEval *bsdf_eval, ccl_private float3 *wo, ccl_private float *pdf, ccl_private float2 *sampled_roughness, ccl_private float *eta)
 
ccl_device float surface_shader_average_roughness (ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_transparency (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_alpha (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_diffuse (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_glossy (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_transmission (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device float3 surface_shader_average_normal (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_ao (KernelGlobals kg, ccl_private const ShaderData *sd, const float ao_factor, ccl_private float3 *N_)
 
ccl_device bool surface_shader_constant_emission (KernelGlobals kg, int shader, ccl_private Spectrum *eval)
 
ccl_device Spectrum surface_shader_background (ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_emission (ccl_private const ShaderData *sd)
 
ccl_device Spectrum surface_shader_apply_holdout (KernelGlobals kg, ccl_private ShaderData *sd)
 
template<uint node_feature_mask, typename ConstIntegratorGenericState >
ccl_device void surface_shader_eval (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)
 

Function Documentation

◆ _surface_shader_bsdf_eval_mis()

ccl_device_inline float _surface_shader_bsdf_eval_mis ( KernelGlobals kg,
ccl_private ShaderData * sd,
const float3 wo,
ccl_private const ShaderClosure * skip_sc,
ccl_private BsdfEval * result_eval,
float sum_pdf,
float sum_sample_weight,
const uint light_shader_flags )

◆ _surface_shader_exclude()

◆ surface_shader_alpha()

ccl_device Spectrum surface_shader_alpha ( KernelGlobals kg,
ccl_private const ShaderData * sd )

Definition at line 964 of file surface_shader.h.

References one_spectrum, saturate, and surface_shader_transparency().

Referenced by film_write_data_passes().

◆ surface_shader_ao()

ccl_device Spectrum surface_shader_ao ( KernelGlobals kg,
ccl_private const ShaderData * sd,
const float ao_factor,
ccl_private float3 * N_ )

◆ surface_shader_apply_holdout()

◆ surface_shader_average_normal()

ccl_device float3 surface_shader_average_normal ( KernelGlobals kg,
ccl_private const ShaderData * sd )

◆ surface_shader_average_roughness()

ccl_device float surface_shader_average_roughness ( ccl_private const ShaderData * sd)

◆ surface_shader_background()

ccl_device Spectrum surface_shader_background ( ccl_private const ShaderData * sd)

◆ surface_shader_bsdf_bssrdf_pick()

ccl_device_inline ccl_private const ShaderClosure * surface_shader_bsdf_bssrdf_pick ( ccl_private const ShaderData *ccl_restrict sd,
ccl_private float3 * rand_bsdf )

◆ surface_shader_bsdf_eval()

◆ surface_shader_bsdf_eval_pdfs()

ccl_device_inline float surface_shader_bsdf_eval_pdfs ( const KernelGlobals kg,
ccl_private ShaderData * sd,
const float3 wo,
ccl_private BsdfEval * result_eval,
ccl_private float * pdfs,
const uint light_shader_flags )

◆ surface_shader_bsdf_sample_closure()

ccl_device int surface_shader_bsdf_sample_closure ( KernelGlobals kg,
ccl_private ShaderData * sd,
ccl_private const ShaderClosure * sc,
const int path_flag,
const float3 rand_bsdf,
ccl_private BsdfEval * bsdf_eval,
ccl_private float3 * wo,
ccl_private float * pdf,
ccl_private float2 * sampled_roughness,
ccl_private float * eta )

◆ surface_shader_bssrdf_sample_weight()

ccl_device_inline Spectrum surface_shader_bssrdf_sample_weight ( ccl_private const ShaderData *ccl_restrict sd,
ccl_private const ShaderClosure *ccl_restrict bssrdf_sc )

Definition at line 439 of file surface_shader.h.

References ccl_private, CLOSURE_IS_BSDF_OR_BSSRDF, ShaderClosure, and sum().

◆ surface_shader_constant_emission()

ccl_device bool surface_shader_constant_emission ( KernelGlobals kg,
int shader,
ccl_private Spectrum * eval )

◆ surface_shader_diffuse()

◆ surface_shader_emission()

ccl_device Spectrum surface_shader_emission ( ccl_private const ShaderData * sd)

◆ surface_shader_eval()

◆ surface_shader_glossy()

◆ surface_shader_prepare_closures()

◆ surface_shader_transmission()

ccl_device Spectrum surface_shader_transmission ( KernelGlobals kg,
ccl_private const ShaderData * sd )

◆ surface_shader_transparency()