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 )

◆ surface_shader_ao()

◆ surface_shader_apply_holdout()

◆ surface_shader_average_normal()

◆ surface_shader_average_roughness()

ccl_device float surface_shader_average_roughness ( ccl_private const ShaderData * sd)

◆ surface_shader_background()

◆ surface_shader_bsdf_bssrdf_pick()

◆ surface_shader_bsdf_eval()

◆ surface_shader_bsdf_eval_pdfs()

◆ 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 )

◆ surface_shader_constant_emission()

◆ surface_shader_diffuse()

◆ surface_shader_emission()

◆ surface_shader_eval()

◆ surface_shader_glossy()

◆ surface_shader_prepare_closures()

◆ surface_shader_transmission()

◆ surface_shader_transparency()