Blender V4.3
closures_setup.h File Reference

Go to the source code of this file.

Macros

#define OSL_CLOSURE_STRUCT_BEGIN(Upper, lower)
 
#define OSL_CLOSURE_STRUCT_END(Upper, lower)
 
#define OSL_CLOSURE_STRUCT_MEMBER(Upper, TYPE, type, name, key)   type name;
 
#define OSL_CLOSURE_STRUCT_ARRAY_MEMBER(Upper, TYPE, type, name, key, size)   type name[size];
 

Functions

struct ccl_align (8) LayerClosure
 
ccl_device_forceinline void osl_zero_albedo (float3 *layer_albedo)
 
ccl_device_forceinline bool osl_closure_skip (KernelGlobals kg, ccl_private const ShaderData *sd, uint32_t path_flag, int scattering)
 
ccl_device void osl_closure_diffuse_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const DiffuseClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_oren_nayar_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const OrenNayarClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_oren_nayar_diffuse_bsdf_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const OrenNayarDiffuseBSDFClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_translucent_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const TranslucentClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_reflection_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const ReflectionClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_refraction_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const RefractionClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_transparent_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const TransparentClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_ray_portal_bsdf_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const RayPortalBSDFClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_dielectric_bsdf_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const DielectricBSDFClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_conductor_bsdf_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const ConductorBSDFClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_generalized_schlick_bsdf_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const GeneralizedSchlickBSDFClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_microfacet_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const MicrofacetClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_microfacet_f82_tint_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const MicrofacetF82TintClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_microfacet_multi_ggx_glass_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const MicrofacetMultiGGXGlassClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_microfacet_multi_ggx_aniso_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const MicrofacetMultiGGXClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_ashikhmin_velvet_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const AshikhminVelvetClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_sheen_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const SheenClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_diffuse_toon_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const DiffuseToonClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_glossy_toon_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const GlossyToonClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_emission_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t, float3 weight, ccl_private const GenericEmissiveClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_background_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t, float3 weight, ccl_private const GenericBackgroundClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_holdout_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t, float3 weight, ccl_private const HoldoutClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_diffuse_ramp_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t, float3 weight, ccl_private const DiffuseRampClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_phong_ramp_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t, float3 weight, ccl_private const PhongRampClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_bssrdf_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const BSSRDFClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_hair_reflection_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const HairReflectionClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_hair_transmission_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const HairTransmissionClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_hair_chiang_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const ChiangHairClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_hair_huang_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const HuangHairClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_absorption_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const VolumeAbsorptionClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_henyey_greenstein_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const VolumeHenyeyGreensteinClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_fournier_forand_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const VolumeFournierForandClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_draine_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const VolumeDraineClosure *closure, float3 *layer_albedo)
 
ccl_device void osl_closure_rayleigh_setup (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, float3 weight, ccl_private const VolumeRayleighClosure *closure, float3 *layer_albedo)
 

Macro Definition Documentation

◆ OSL_CLOSURE_STRUCT_ARRAY_MEMBER

#define OSL_CLOSURE_STRUCT_ARRAY_MEMBER ( Upper,
TYPE,
type,
name,
key,
size )   type name[size];

Definition at line 26 of file closures_setup.h.

◆ OSL_CLOSURE_STRUCT_BEGIN

#define OSL_CLOSURE_STRUCT_BEGIN ( Upper,
lower )
Value:
struct ccl_align(8) Upper##Closure \
{ \
const char *label;
const char * label
#define ccl_align(n)

Definition at line 18 of file closures_setup.h.

◆ OSL_CLOSURE_STRUCT_END

#define OSL_CLOSURE_STRUCT_END ( Upper,
lower )
Value:
} \
;

Definition at line 22 of file closures_setup.h.

◆ OSL_CLOSURE_STRUCT_MEMBER

#define OSL_CLOSURE_STRUCT_MEMBER ( Upper,
TYPE,
type,
name,
key )   type name;

Definition at line 25 of file closures_setup.h.

Function Documentation

◆ ccl_align()

struct ccl_align ( 8 )

Definition at line 16 of file closures_setup.h.

◆ osl_closure_absorption_setup()

ccl_device void osl_closure_absorption_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const VolumeAbsorptionClosure * closure,
float3 * layer_albedo )

◆ osl_closure_ashikhmin_velvet_setup()

ccl_device void osl_closure_ashikhmin_velvet_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const AshikhminVelvetClosure * closure,
float3 * layer_albedo )

◆ osl_closure_background_setup()

ccl_device void osl_closure_background_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t ,
float3 weight,
ccl_private const GenericBackgroundClosure * closure,
float3 * layer_albedo )

Definition at line 790 of file closures_setup.h.

References background_setup(), and rgb_to_spectrum().

◆ osl_closure_bssrdf_setup()

◆ osl_closure_conductor_bsdf_setup()

◆ osl_closure_dielectric_bsdf_setup()

◆ osl_closure_diffuse_ramp_setup()

ccl_device void osl_closure_diffuse_ramp_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t ,
float3 weight,
ccl_private const DiffuseRampClosure * closure,
float3 * layer_albedo )

◆ osl_closure_diffuse_setup()

ccl_device void osl_closure_diffuse_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const DiffuseClosure * closure,
float3 * layer_albedo )

◆ osl_closure_diffuse_toon_setup()

ccl_device void osl_closure_diffuse_toon_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const DiffuseToonClosure * closure,
float3 * layer_albedo )

◆ osl_closure_draine_setup()

ccl_device void osl_closure_draine_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const VolumeDraineClosure * closure,
float3 * layer_albedo )

◆ osl_closure_emission_setup()

ccl_device void osl_closure_emission_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t ,
float3 weight,
ccl_private const GenericEmissiveClosure * closure,
float3 * layer_albedo )

◆ osl_closure_fournier_forand_setup()

ccl_device void osl_closure_fournier_forand_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const VolumeFournierForandClosure * closure,
float3 * layer_albedo )

◆ osl_closure_generalized_schlick_bsdf_setup()

◆ osl_closure_glossy_toon_setup()

ccl_device void osl_closure_glossy_toon_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const GlossyToonClosure * closure,
float3 * layer_albedo )

◆ osl_closure_hair_chiang_setup()

ccl_device void osl_closure_hair_chiang_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const ChiangHairClosure * closure,
float3 * layer_albedo )

◆ osl_closure_hair_huang_setup()

◆ osl_closure_hair_reflection_setup()

ccl_device void osl_closure_hair_reflection_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const HairReflectionClosure * closure,
float3 * layer_albedo )

◆ osl_closure_hair_transmission_setup()

ccl_device void osl_closure_hair_transmission_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const HairTransmissionClosure * closure,
float3 * layer_albedo )

◆ osl_closure_henyey_greenstein_setup()

ccl_device void osl_closure_henyey_greenstein_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const VolumeHenyeyGreensteinClosure * closure,
float3 * layer_albedo )

◆ osl_closure_holdout_setup()

ccl_device void osl_closure_holdout_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t ,
float3 weight,
ccl_private const HoldoutClosure * closure,
float3 * layer_albedo )

◆ osl_closure_microfacet_f82_tint_setup()

◆ osl_closure_microfacet_multi_ggx_aniso_setup()

◆ osl_closure_microfacet_multi_ggx_glass_setup()

ccl_device void osl_closure_microfacet_multi_ggx_glass_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const MicrofacetMultiGGXGlassClosure * closure,
float3 * layer_albedo )

◆ osl_closure_microfacet_setup()

◆ osl_closure_oren_nayar_diffuse_bsdf_setup()

ccl_device void osl_closure_oren_nayar_diffuse_bsdf_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const OrenNayarDiffuseBSDFClosure * closure,
float3 * layer_albedo )

◆ osl_closure_oren_nayar_setup()

ccl_device void osl_closure_oren_nayar_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const OrenNayarClosure * closure,
float3 * layer_albedo )

◆ osl_closure_phong_ramp_setup()

ccl_device void osl_closure_phong_ramp_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t ,
float3 weight,
ccl_private const PhongRampClosure * closure,
float3 * layer_albedo )

◆ osl_closure_ray_portal_bsdf_setup()

ccl_device void osl_closure_ray_portal_bsdf_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const RayPortalBSDFClosure * closure,
float3 * layer_albedo )

Definition at line 227 of file closures_setup.h.

References bsdf_ray_portal_setup(), and rgb_to_spectrum().

◆ osl_closure_rayleigh_setup()

ccl_device void osl_closure_rayleigh_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const VolumeRayleighClosure * closure,
float3 * layer_albedo )

◆ osl_closure_reflection_setup()

ccl_device void osl_closure_reflection_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const ReflectionClosure * closure,
float3 * layer_albedo )

◆ osl_closure_refraction_setup()

ccl_device void osl_closure_refraction_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const RefractionClosure * closure,
float3 * layer_albedo )

◆ osl_closure_sheen_setup()

ccl_device void osl_closure_sheen_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const SheenClosure * closure,
float3 * layer_albedo )

◆ osl_closure_skip()

◆ osl_closure_translucent_setup()

ccl_device void osl_closure_translucent_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const TranslucentClosure * closure,
float3 * layer_albedo )

◆ osl_closure_transparent_setup()

ccl_device void osl_closure_transparent_setup ( KernelGlobals kg,
ccl_private ShaderData * sd,
uint32_t path_flag,
float3 weight,
ccl_private const TransparentClosure * closure,
float3 * layer_albedo )

Definition at line 217 of file closures_setup.h.

References bsdf_transparent_setup(), and rgb_to_spectrum().

◆ osl_zero_albedo()