Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/osl/osl_closures.cpp
| Show First 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | |||||
| #include "closure/bsdf_util.h" | #include "closure/bsdf_util.h" | ||||
| #include "closure/bsdf_ashikhmin_velvet.h" | #include "closure/bsdf_ashikhmin_velvet.h" | ||||
| #include "closure/bsdf_diffuse.h" | #include "closure/bsdf_diffuse.h" | ||||
| #include "closure/bsdf_microfacet.h" | #include "closure/bsdf_microfacet.h" | ||||
| #include "closure/bsdf_oren_nayar.h" | #include "closure/bsdf_oren_nayar.h" | ||||
| #include "closure/bsdf_reflection.h" | #include "closure/bsdf_reflection.h" | ||||
| #include "closure/bsdf_refraction.h" | #include "closure/bsdf_refraction.h" | ||||
| #include "closure/bsdf_transparent.h" | #include "closure/bsdf_transparent.h" | ||||
| #include "closure/bsdf_ward.h" | #include "closure/bsdf_ashikhmin_shirley.h" | ||||
| #include "closure/bsdf_westin.h" | #include "closure/bsdf_westin.h" | ||||
| #include "closure/bsdf_toon.h" | #include "closure/bsdf_toon.h" | ||||
| #include "closure/bsdf_hair.h" | #include "closure/bsdf_hair.h" | ||||
| #include "closure/volume.h" | #include "closure/volume.h" | ||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| using namespace OSL; | using namespace OSL; | ||||
| Show All 35 Lines | |||||
| BSDF_CLOSURE_CLASS_BEGIN(Transparent, transparent, transparent, LABEL_SINGULAR) | BSDF_CLOSURE_CLASS_BEGIN(Transparent, transparent, transparent, LABEL_SINGULAR) | ||||
| BSDF_CLOSURE_CLASS_END(Transparent, transparent) | BSDF_CLOSURE_CLASS_END(Transparent, transparent) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(AshikhminVelvet, ashikhmin_velvet, ashikhmin_velvet, LABEL_DIFFUSE) | BSDF_CLOSURE_CLASS_BEGIN(AshikhminVelvet, ashikhmin_velvet, ashikhmin_velvet, LABEL_DIFFUSE) | ||||
| CLOSURE_FLOAT3_PARAM(AshikhminVelvetClosure, sc.N), | CLOSURE_FLOAT3_PARAM(AshikhminVelvetClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(AshikhminVelvetClosure, sc.data0), | CLOSURE_FLOAT_PARAM(AshikhminVelvetClosure, sc.data0), | ||||
| BSDF_CLOSURE_CLASS_END(AshikhminVelvet, ashikhmin_velvet) | BSDF_CLOSURE_CLASS_END(AshikhminVelvet, ashikhmin_velvet) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(Ward, ward, ward, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(AshikhminShirley, ashikhmin_shirley_aniso, ashikhmin_shirley, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(WardClosure, sc.N), | CLOSURE_FLOAT3_PARAM(AshikhminShirleyClosure, sc.N), | ||||
| CLOSURE_FLOAT3_PARAM(WardClosure, sc.T), | CLOSURE_FLOAT3_PARAM(AshikhminShirleyClosure, sc.T), | ||||
| CLOSURE_FLOAT_PARAM(WardClosure, sc.data0), | CLOSURE_FLOAT_PARAM(AshikhminShirleyClosure, sc.data0), | ||||
| CLOSURE_FLOAT_PARAM(WardClosure, sc.data1), | CLOSURE_FLOAT_PARAM(AshikhminShirleyClosure, sc.data1), | ||||
| BSDF_CLOSURE_CLASS_END(Ward, ward) | BSDF_CLOSURE_CLASS_END(AshikhminShirley, ashikhmin_shirley_aniso) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(DiffuseToon, diffuse_toon, diffuse_toon, LABEL_DIFFUSE) | BSDF_CLOSURE_CLASS_BEGIN(DiffuseToon, diffuse_toon, diffuse_toon, LABEL_DIFFUSE) | ||||
| CLOSURE_FLOAT3_PARAM(DiffuseToonClosure, sc.N), | CLOSURE_FLOAT3_PARAM(DiffuseToonClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(DiffuseToonClosure, sc.data0), | CLOSURE_FLOAT_PARAM(DiffuseToonClosure, sc.data0), | ||||
| CLOSURE_FLOAT_PARAM(DiffuseToonClosure, sc.data1), | CLOSURE_FLOAT_PARAM(DiffuseToonClosure, sc.data1), | ||||
| BSDF_CLOSURE_CLASS_END(DiffuseToon, diffuse_toon) | BSDF_CLOSURE_CLASS_END(DiffuseToon, diffuse_toon) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(GlossyToon, glossy_toon, glossy_toon, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(GlossyToon, glossy_toon, glossy_toon, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(GlossyToonClosure, sc.N), | CLOSURE_FLOAT3_PARAM(GlossyToonClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(GlossyToonClosure, sc.data0), | CLOSURE_FLOAT_PARAM(GlossyToonClosure, sc.data0), | ||||
| CLOSURE_FLOAT_PARAM(GlossyToonClosure, sc.data1), | CLOSURE_FLOAT_PARAM(GlossyToonClosure, sc.data1), | ||||
| BSDF_CLOSURE_CLASS_END(GlossyToon, glossy_toon) | BSDF_CLOSURE_CLASS_END(GlossyToon, glossy_toon) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGX, microfacet_ggx, microfacet_ggx, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGX, microfacet_ggx, microfacet_ggx, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(MicrofacetGGXClosure, sc.N), | CLOSURE_FLOAT3_PARAM(MicrofacetGGXClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure, sc.data0), | CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure, sc.data0), | ||||
| BSDF_CLOSURE_CLASS_END(MicrofacetGGX, microfacet_ggx) | BSDF_CLOSURE_CLASS_END(MicrofacetGGX, microfacet_ggx) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGXAniso, microfacet_ggx_aniso, microfacet_ggx, LABEL_GLOSSY) | |||||
| CLOSURE_FLOAT3_PARAM(MicrofacetGGXAnisoClosure, sc.N), | |||||
| CLOSURE_FLOAT3_PARAM(MicrofacetGGXAnisoClosure, sc.T), | |||||
| CLOSURE_FLOAT_PARAM(MicrofacetGGXAnisoClosure, sc.data0), | |||||
| CLOSURE_FLOAT_PARAM(MicrofacetGGXAnisoClosure, sc.data1), | |||||
| BSDF_CLOSURE_CLASS_END(MicrofacetGGXAniso, microfacet_ggx_aniso) | |||||
| BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmann, microfacet_beckmann, microfacet_beckmann, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmann, microfacet_beckmann, microfacet_beckmann, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannClosure, sc.N), | CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure, sc.data0), | CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure, sc.data0), | ||||
| BSDF_CLOSURE_CLASS_END(MicrofacetBeckmann, microfacet_beckmann) | BSDF_CLOSURE_CLASS_END(MicrofacetBeckmann, microfacet_beckmann) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmannAniso, microfacet_beckmann_aniso, microfacet_beckmann, LABEL_GLOSSY) | |||||
| CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannAnisoClosure, sc.N), | |||||
| CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannAnisoClosure, sc.T), | |||||
| CLOSURE_FLOAT_PARAM(MicrofacetBeckmannAnisoClosure, sc.data0), | |||||
| CLOSURE_FLOAT_PARAM(MicrofacetBeckmannAnisoClosure, sc.data1), | |||||
| BSDF_CLOSURE_CLASS_END(MicrofacetBeckmannAniso, microfacet_beckmann_aniso) | |||||
| BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGXRefraction, microfacet_ggx_refraction, microfacet_ggx, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(MicrofacetGGXRefraction, microfacet_ggx_refraction, microfacet_ggx, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(MicrofacetGGXRefractionClosure, sc.N), | CLOSURE_FLOAT3_PARAM(MicrofacetGGXRefractionClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data0), | CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data0), | ||||
| CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data1), | CLOSURE_FLOAT_PARAM(MicrofacetGGXRefractionClosure, sc.data1), | ||||
| BSDF_CLOSURE_CLASS_END(MicrofacetGGXRefraction, microfacet_ggx_refraction) | BSDF_CLOSURE_CLASS_END(MicrofacetGGXRefraction, microfacet_ggx_refraction) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction, microfacet_beckmann, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction, microfacet_beckmann, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannRefractionClosure, sc.N), | CLOSURE_FLOAT3_PARAM(MicrofacetBeckmannRefractionClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data0), | CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data0), | ||||
| CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data1), | CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data1), | ||||
| BSDF_CLOSURE_CLASS_END(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction) | BSDF_CLOSURE_CLASS_END(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(HairReflection, hair_reflection, hair_reflection, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(HairReflection, hair_reflection, hair_reflection, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N), | CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data0), | CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data0), | ||||
| CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1), | CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1), | ||||
| #ifdef __HAIR__ | #ifdef __HAIR__ | ||||
| CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.T), | CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.T), | ||||
| CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.offset), | CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data2), | ||||
| #else | #else | ||||
| CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N), | CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1), | CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1), | ||||
| #endif | #endif | ||||
| BSDF_CLOSURE_CLASS_END(HairReflection, hair_reflection) | BSDF_CLOSURE_CLASS_END(HairReflection, hair_reflection) | ||||
| BSDF_CLOSURE_CLASS_BEGIN(HairTransmission, hair_transmission, hair_transmission, LABEL_GLOSSY) | BSDF_CLOSURE_CLASS_BEGIN(HairTransmission, hair_transmission, hair_transmission, LABEL_GLOSSY) | ||||
| CLOSURE_FLOAT3_PARAM(HairTransmissionClosure, sc.N), | CLOSURE_FLOAT3_PARAM(HairTransmissionClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(HairTransmissionClosure, sc.data0), | CLOSURE_FLOAT_PARAM(HairTransmissionClosure, sc.data0), | ||||
| CLOSURE_FLOAT_PARAM(HairTransmissionClosure, sc.data1), | CLOSURE_FLOAT_PARAM(HairTransmissionClosure, sc.data1), | ||||
| #ifdef __HAIR__ | #ifdef __HAIR__ | ||||
| CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.T), | CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.T), | ||||
| CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.offset), | CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data2), | ||||
| #else | #else | ||||
| CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N), | CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N), | ||||
| CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1), | CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1), | ||||
| #endif | #endif | ||||
| BSDF_CLOSURE_CLASS_END(HairTransmission, hair_transmission) | BSDF_CLOSURE_CLASS_END(HairTransmission, hair_transmission) | ||||
| VOLUME_CLOSURE_CLASS_BEGIN(VolumeHenyeyGreenstein, henyey_greenstein, LABEL_VOLUME_SCATTER) | VOLUME_CLOSURE_CLASS_BEGIN(VolumeHenyeyGreenstein, henyey_greenstein, LABEL_VOLUME_SCATTER) | ||||
| CLOSURE_FLOAT_PARAM(VolumeHenyeyGreensteinClosure, sc.data0), | CLOSURE_FLOAT_PARAM(VolumeHenyeyGreensteinClosure, sc.data0), | ||||
| Show All 30 Lines | void OSLShader::register_closures(OSLShadingSystem *ss_) | ||||
| register_closure(ss, "reflection", id++, | register_closure(ss, "reflection", id++, | ||||
| bsdf_reflection_params(), bsdf_reflection_prepare); | bsdf_reflection_params(), bsdf_reflection_prepare); | ||||
| register_closure(ss, "refraction", id++, | register_closure(ss, "refraction", id++, | ||||
| bsdf_refraction_params(), bsdf_refraction_prepare); | bsdf_refraction_params(), bsdf_refraction_prepare); | ||||
| register_closure(ss, "transparent", id++, | register_closure(ss, "transparent", id++, | ||||
| bsdf_transparent_params(), bsdf_transparent_prepare); | bsdf_transparent_params(), bsdf_transparent_prepare); | ||||
| register_closure(ss, "microfacet_ggx", id++, | register_closure(ss, "microfacet_ggx", id++, | ||||
| bsdf_microfacet_ggx_params(), bsdf_microfacet_ggx_prepare); | bsdf_microfacet_ggx_params(), bsdf_microfacet_ggx_prepare); | ||||
| register_closure(ss, "microfacet_ggx_aniso", id++, | |||||
| bsdf_microfacet_ggx_aniso_params(), bsdf_microfacet_ggx_aniso_prepare); | |||||
| register_closure(ss, "microfacet_ggx_refraction", id++, | register_closure(ss, "microfacet_ggx_refraction", id++, | ||||
| bsdf_microfacet_ggx_refraction_params(), bsdf_microfacet_ggx_refraction_prepare); | bsdf_microfacet_ggx_refraction_params(), bsdf_microfacet_ggx_refraction_prepare); | ||||
| register_closure(ss, "microfacet_beckmann", id++, | register_closure(ss, "microfacet_beckmann", id++, | ||||
| bsdf_microfacet_beckmann_params(), bsdf_microfacet_beckmann_prepare); | bsdf_microfacet_beckmann_params(), bsdf_microfacet_beckmann_prepare); | ||||
| register_closure(ss, "microfacet_beckmann_aniso", id++, | |||||
| bsdf_microfacet_beckmann_aniso_params(), bsdf_microfacet_beckmann_aniso_prepare); | |||||
| register_closure(ss, "microfacet_beckmann_refraction", id++, | register_closure(ss, "microfacet_beckmann_refraction", id++, | ||||
| bsdf_microfacet_beckmann_refraction_params(), bsdf_microfacet_beckmann_refraction_prepare); | bsdf_microfacet_beckmann_refraction_params(), bsdf_microfacet_beckmann_refraction_prepare); | ||||
| register_closure(ss, "ward", id++, | register_closure(ss, "ashikhmin_shirley", id++, | ||||
| bsdf_ward_params(), bsdf_ward_prepare); | bsdf_ashikhmin_shirley_aniso_params(), bsdf_ashikhmin_shirley_aniso_prepare); | ||||
| register_closure(ss, "ashikhmin_velvet", id++, | register_closure(ss, "ashikhmin_velvet", id++, | ||||
| bsdf_ashikhmin_velvet_params(), bsdf_ashikhmin_velvet_prepare); | bsdf_ashikhmin_velvet_params(), bsdf_ashikhmin_velvet_prepare); | ||||
| register_closure(ss, "diffuse_toon", id++, | register_closure(ss, "diffuse_toon", id++, | ||||
| bsdf_diffuse_toon_params(), bsdf_diffuse_toon_prepare); | bsdf_diffuse_toon_params(), bsdf_diffuse_toon_prepare); | ||||
| register_closure(ss, "glossy_toon", id++, | register_closure(ss, "glossy_toon", id++, | ||||
| bsdf_glossy_toon_params(), bsdf_glossy_toon_prepare); | bsdf_glossy_toon_params(), bsdf_glossy_toon_prepare); | ||||
| register_closure(ss, "specular_toon", id++, | register_closure(ss, "specular_toon", id++, | ||||
| bsdf_glossy_toon_params(), bsdf_glossy_toon_prepare); | bsdf_glossy_toon_params(), bsdf_glossy_toon_prepare); | ||||
| Show All 39 Lines | |||||