Blender  V3.3
Classes | Functions | Variables
closures.cpp File Reference
#include <OSL/genclosure.h>
#include <OSL/oslclosure.h>
#include "kernel/osl/closures.h"
#include "kernel/osl/shader.h"
#include "util/math.h"
#include "util/param.h"
#include "kernel/device/cpu/compat.h"
#include "kernel/device/cpu/globals.h"
#include "kernel/types.h"
#include "kernel/closure/alloc.h"
#include "kernel/closure/bsdf_util.h"
#include "kernel/closure/bsdf_ashikhmin_velvet.h"
#include "kernel/closure/bsdf_diffuse.h"
#include "kernel/closure/bsdf_microfacet.h"
#include "kernel/closure/bsdf_microfacet_multi.h"
#include "kernel/closure/bsdf_oren_nayar.h"
#include "kernel/closure/bsdf_reflection.h"
#include "kernel/closure/bsdf_refraction.h"
#include "kernel/closure/bsdf_transparent.h"
#include "kernel/closure/bsdf_ashikhmin_shirley.h"
#include "kernel/closure/bsdf_toon.h"
#include "kernel/closure/bsdf_hair.h"
#include "kernel/closure/bsdf_hair_principled.h"
#include "kernel/closure/bsdf_principled_diffuse.h"
#include "kernel/closure/bsdf_principled_sheen.h"
#include "kernel/closure/volume.h"

Go to the source code of this file.

Classes

class  PrincipledSheenClosure
 
class  PrincipledHairClosure
 
class  PrincipledClearcoatClosure
 
class  MicrofacetClosure
 
class  MicrofacetFresnelClosure
 
class  MicrofacetGGXFresnelClosure
 
class  MicrofacetGGXAnisoFresnelClosure
 
class  MicrofacetMultiClosure
 
class  MicrofacetMultiGGXClosure
 
class  MicrofacetMultiGGXAnisoClosure
 
class  MicrofacetMultiGGXGlassClosure
 
class  MicrofacetMultiFresnelClosure
 
class  MicrofacetMultiGGXFresnelClosure
 
class  MicrofacetMultiGGXAnisoFresnelClosure
 
class  MicrofacetMultiGGXGlassFresnelClosure
 
class  TransparentClosure
 
class  VolumeAbsorptionClosure
 
class  VolumeHenyeyGreensteinClosure
 

Functions

 BSDF_CLOSURE_CLASS_BEGIN (AshikhminShirley, ashikhmin_shirley, MicrofacetBsdf, LABEL_GLOSSY|LABEL_REFLECT) BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGXIsotropic
 
LABEL_GLOSSY LABEL_REFLECT BSDF_CLOSURE_CLASS_BEGIN (MicrofacetGGX, microfacet_ggx, MicrofacetBsdf, LABEL_GLOSSY|LABEL_REFLECT) BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmannIsotropic
 
LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_REFLECT BSDF_CLOSURE_CLASS_BEGIN (MicrofacetBeckmann, microfacet_beckmann, MicrofacetBsdf, LABEL_GLOSSY|LABEL_REFLECT) BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGXRefraction
 
LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_TRANSMIT BSDF_CLOSURE_CLASS_BEGIN (MicrofacetBeckmannRefraction, microfacet_beckmann_refraction, MicrofacetBsdf, LABEL_GLOSSY|LABEL_TRANSMIT) BSDF_CLOSURE_CLASS_BEGIN(PrincipledDiffuse
 
static ClosureParam * bsdf_principled_sheen_params ()
 
static ClosureParam * closure_bsdf_principled_hair_params ()
 
ClosureParam * closure_bsdf_principled_clearcoat_params ()
 
static void register_closure (OSL::ShadingSystem *ss, const char *name, int id, OSL::ClosureParam *params, OSL::PrepareClosureFunc prepare)
 
ClosureParam * closure_bsdf_microfacet_params ()
 
ClosureParam * closure_bsdf_microfacet_ggx_fresnel_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_ggx_fresnel_prepare, MicrofacetGGXFresnelClosure)
 
ClosureParam * closure_bsdf_microfacet_ggx_aniso_fresnel_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_ggx_aniso_fresnel_prepare, MicrofacetGGXAnisoFresnelClosure)
 
ClosureParam * closure_bsdf_microfacet_multi_ggx_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_multi_ggx_prepare, MicrofacetMultiGGXClosure)
 
ClosureParam * closure_bsdf_microfacet_multi_ggx_aniso_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_multi_ggx_aniso_prepare, MicrofacetMultiGGXAnisoClosure)
 
ClosureParam * closure_bsdf_microfacet_multi_ggx_glass_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_multi_ggx_glass_prepare, MicrofacetMultiGGXGlassClosure)
 
ClosureParam * closure_bsdf_microfacet_multi_ggx_fresnel_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_multi_ggx_fresnel_prepare, MicrofacetMultiGGXFresnelClosure)
 
ClosureParam * closure_bsdf_microfacet_multi_ggx_aniso_fresnel_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_multi_ggx_aniso_fresnel_prepare, MicrofacetMultiGGXAnisoFresnelClosure)
 
ClosureParam * closure_bsdf_microfacet_multi_ggx_glass_fresnel_params ()
 
 CCLOSURE_PREPARE (closure_bsdf_microfacet_multi_ggx_glass_fresnel_prepare, MicrofacetMultiGGXGlassFresnelClosure)
 
ClosureParam * closure_bsdf_transparent_params ()
 
ClosureParam * closure_absorption_params ()
 
ClosureParam * closure_henyey_greenstein_params ()
 

Variables

 microfacet_ggx_isotropic
 
 MicrofacetBsdf
 
LABEL_GLOSSY LABEL_REFLECT microfacet_beckmann_isotropic
 
LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_REFLECT microfacet_ggx_refraction
 
LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_TRANSMIT principled_diffuse
 
LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_TRANSMIT PrincipledDiffuseBsdf
 

Function Documentation

◆ BSDF_CLOSURE_CLASS_BEGIN() [1/4]

BSDF_CLOSURE_CLASS_BEGIN ( AshikhminShirley  ,
ashikhmin_shirley  ,
MicrofacetBsdf  ,
LABEL_GLOSSY LABEL_REFLECT 
)

◆ BSDF_CLOSURE_CLASS_BEGIN() [2/4]

LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_REFLECT BSDF_CLOSURE_CLASS_BEGIN ( MicrofacetBeckmann  ,
microfacet_beckmann  ,
MicrofacetBsdf  ,
LABEL_GLOSSY LABEL_REFLECT 
)

◆ BSDF_CLOSURE_CLASS_BEGIN() [3/4]

LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_REFLECT LABEL_GLOSSY LABEL_TRANSMIT BSDF_CLOSURE_CLASS_BEGIN ( MicrofacetBeckmannRefraction  ,
microfacet_beckmann_refraction  ,
MicrofacetBsdf  ,
LABEL_GLOSSY LABEL_TRANSMIT 
)

◆ BSDF_CLOSURE_CLASS_BEGIN() [4/4]

LABEL_GLOSSY LABEL_REFLECT BSDF_CLOSURE_CLASS_BEGIN ( MicrofacetGGX  ,
microfacet_ggx  ,
MicrofacetBsdf  ,
LABEL_GLOSSY LABEL_REFLECT 
)

◆ bsdf_principled_sheen_params()

static ClosureParam* bsdf_principled_sheen_params ( )
static

Definition at line 192 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, label, and params.

◆ CCLOSURE_PREPARE() [1/8]

◆ CCLOSURE_PREPARE() [2/8]

◆ CCLOSURE_PREPARE() [3/8]

◆ CCLOSURE_PREPARE() [4/8]

◆ CCLOSURE_PREPARE() [5/8]

◆ CCLOSURE_PREPARE() [6/8]

◆ CCLOSURE_PREPARE() [7/8]

◆ CCLOSURE_PREPARE() [8/8]

◆ closure_absorption_params()

ClosureParam* closure_absorption_params ( )

Definition at line 967 of file closures.cpp.

References label, and params.

◆ closure_bsdf_microfacet_ggx_aniso_fresnel_params()

ClosureParam* closure_bsdf_microfacet_ggx_aniso_fresnel_params ( )

Definition at line 653 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_ggx_fresnel_params()

ClosureParam* closure_bsdf_microfacet_ggx_fresnel_params ( )

Definition at line 624 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_multi_ggx_aniso_fresnel_params()

ClosureParam* closure_bsdf_microfacet_multi_ggx_aniso_fresnel_params ( )

Definition at line 882 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_multi_ggx_aniso_params()

ClosureParam* closure_bsdf_microfacet_multi_ggx_aniso_params ( )

Definition at line 751 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_multi_ggx_fresnel_params()

ClosureParam* closure_bsdf_microfacet_multi_ggx_fresnel_params ( )

Definition at line 852 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_multi_ggx_glass_fresnel_params()

ClosureParam* closure_bsdf_microfacet_multi_ggx_glass_fresnel_params ( )

Definition at line 920 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_multi_ggx_glass_params()

ClosureParam* closure_bsdf_microfacet_multi_ggx_glass_params ( )

Definition at line 786 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_multi_ggx_params()

ClosureParam* closure_bsdf_microfacet_multi_ggx_params ( )

Definition at line 723 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, color, label, and params.

◆ closure_bsdf_microfacet_params()

ClosureParam* closure_bsdf_microfacet_params ( )

Definition at line 555 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, label, params, and refract().

◆ closure_bsdf_principled_clearcoat_params()

ClosureParam* closure_bsdf_principled_clearcoat_params ( )

Definition at line 299 of file closures.cpp.

References usdtokens::clearcoat(), CLOSURE_FLOAT3_PARAM, label, and params.

◆ closure_bsdf_principled_hair_params()

static ClosureParam* closure_bsdf_principled_hair_params ( )
static

Definition at line 240 of file closures.cpp.

References CLOSURE_FLOAT3_PARAM, label, and params.

◆ closure_bsdf_transparent_params()

ClosureParam* closure_bsdf_transparent_params ( )

Definition at line 948 of file closures.cpp.

References label, and params.

◆ closure_henyey_greenstein_params()

ClosureParam* closure_henyey_greenstein_params ( )

Definition at line 994 of file closures.cpp.

References label, and params.

◆ register_closure()

static void register_closure ( OSL::ShadingSystem ss,
const char *  name,
int  id,
OSL::ClosureParam *  params,
OSL::PrepareClosureFunc  prepare 
)
static

Definition at line 313 of file closures.cpp.

References NULL, params, and prepare().

Variable Documentation

◆ microfacet_beckmann_isotropic

LABEL_GLOSSY LABEL_REFLECT microfacet_beckmann_isotropic

Definition at line 117 of file closures.cpp.

◆ microfacet_ggx_isotropic

microfacet_ggx_isotropic

Definition at line 99 of file closures.cpp.

◆ microfacet_ggx_refraction

Definition at line 135 of file closures.cpp.

◆ MicrofacetBsdf

Definition at line 100 of file closures.cpp.

◆ principled_diffuse

Definition at line 169 of file closures.cpp.

◆ PrincipledDiffuseBsdf

Definition at line 170 of file closures.cpp.