Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/closure/bsdf.h
| Show All 18 Lines | |||||
| #include "../closure/bsdf_oren_nayar.h" | #include "../closure/bsdf_oren_nayar.h" | ||||
| #include "../closure/bsdf_phong_ramp.h" | #include "../closure/bsdf_phong_ramp.h" | ||||
| #include "../closure/bsdf_diffuse_ramp.h" | #include "../closure/bsdf_diffuse_ramp.h" | ||||
| #include "../closure/bsdf_microfacet.h" | #include "../closure/bsdf_microfacet.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" | ||||
| #ifdef __ANISOTROPIC__ | #ifdef __ANISOTROPIC__ | ||||
| #include "../closure/bsdf_ward.h" | #include "../closure/bsdf_ashikhmin_shirley.h" | ||||
| #endif | #endif | ||||
| #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" | ||||
| #ifdef __SUBSURFACE__ | #ifdef __SUBSURFACE__ | ||||
| #include "../closure/bssrdf.h" | #include "../closure/bssrdf.h" | ||||
| #endif | #endif | ||||
| #ifdef __VOLUME__ | #ifdef __VOLUME__ | ||||
| ▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | case CLOSURE_BSDF_REFRACTION_ID: | ||||
| label = bsdf_refraction_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | label = bsdf_refraction_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | ||||
| eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_TRANSPARENT_ID: | case CLOSURE_BSDF_TRANSPARENT_ID: | ||||
| label = bsdf_transparent_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | label = bsdf_transparent_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | ||||
| eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ID: | case CLOSURE_BSDF_MICROFACET_GGX_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | ||||
| label = bsdf_microfacet_ggx_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | label = bsdf_microfacet_ggx_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | ||||
| eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | ||||
| label = bsdf_microfacet_beckmann_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | label = bsdf_microfacet_beckmann_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | ||||
| eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | ||||
| break; | break; | ||||
| #ifdef __ANISOTROPIC__ | #ifdef __ANISOTROPIC__ | ||||
| case CLOSURE_BSDF_WARD_ID: | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID: | ||||
| label = bsdf_ward_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID: | ||||
| label = bsdf_ashikhmin_shirley_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | |||||
| eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | ||||
| break; | break; | ||||
| #endif | #endif | ||||
| case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | ||||
| label = bsdf_ashikhmin_velvet_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | label = bsdf_ashikhmin_velvet_sample(sc, sd->Ng, sd->I, sd->dI.dx, sd->dI.dy, randu, randv, | ||||
| eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | eval, omega_in, &domega_in->dx, &domega_in->dy, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_DIFFUSE_TOON_ID: | case CLOSURE_BSDF_DIFFUSE_TOON_ID: | ||||
| ▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | #ifdef __SVM__ | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_REFRACTION_ID: | case CLOSURE_BSDF_REFRACTION_ID: | ||||
| eval = bsdf_refraction_eval_reflect(sc, sd->I, omega_in, pdf); | eval = bsdf_refraction_eval_reflect(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_TRANSPARENT_ID: | case CLOSURE_BSDF_TRANSPARENT_ID: | ||||
| eval = bsdf_transparent_eval_reflect(sc, sd->I, omega_in, pdf); | eval = bsdf_transparent_eval_reflect(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ID: | case CLOSURE_BSDF_MICROFACET_GGX_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | ||||
| eval = bsdf_microfacet_ggx_eval_reflect(sc, sd->I, omega_in, pdf); | eval = bsdf_microfacet_ggx_eval_reflect(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | ||||
| eval = bsdf_microfacet_beckmann_eval_reflect(sc, sd->I, omega_in, pdf); | eval = bsdf_microfacet_beckmann_eval_reflect(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| #ifdef __ANISOTROPIC__ | #ifdef __ANISOTROPIC__ | ||||
| case CLOSURE_BSDF_WARD_ID: | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID: | ||||
| eval = bsdf_ward_eval_reflect(sc, sd->I, omega_in, pdf); | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID: | ||||
| eval = bsdf_ashikhmin_shirley_eval_reflect(sc, sd->I, omega_in, pdf); | |||||
| break; | break; | ||||
| #endif | #endif | ||||
| case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | ||||
| eval = bsdf_ashikhmin_velvet_eval_reflect(sc, sd->I, omega_in, pdf); | eval = bsdf_ashikhmin_velvet_eval_reflect(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_DIFFUSE_TOON_ID: | case CLOSURE_BSDF_DIFFUSE_TOON_ID: | ||||
| eval = bsdf_diffuse_toon_eval_reflect(sc, sd->I, omega_in, pdf); | eval = bsdf_diffuse_toon_eval_reflect(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| ▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | #ifdef __SVM__ | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_REFRACTION_ID: | case CLOSURE_BSDF_REFRACTION_ID: | ||||
| eval = bsdf_refraction_eval_transmit(sc, sd->I, omega_in, pdf); | eval = bsdf_refraction_eval_transmit(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_TRANSPARENT_ID: | case CLOSURE_BSDF_TRANSPARENT_ID: | ||||
| eval = bsdf_transparent_eval_transmit(sc, sd->I, omega_in, pdf); | eval = bsdf_transparent_eval_transmit(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ID: | case CLOSURE_BSDF_MICROFACET_GGX_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | ||||
| eval = bsdf_microfacet_ggx_eval_transmit(sc, sd->I, omega_in, pdf); | eval = bsdf_microfacet_ggx_eval_transmit(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | ||||
| eval = bsdf_microfacet_beckmann_eval_transmit(sc, sd->I, omega_in, pdf); | eval = bsdf_microfacet_beckmann_eval_transmit(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| #ifdef __ANISOTROPIC__ | #ifdef __ANISOTROPIC__ | ||||
| case CLOSURE_BSDF_WARD_ID: | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID: | ||||
| eval = bsdf_ward_eval_transmit(sc, sd->I, omega_in, pdf); | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID: | ||||
| eval = bsdf_ashikhmin_shirley_eval_transmit(sc, sd->I, omega_in, pdf); | |||||
| break; | break; | ||||
| #endif | #endif | ||||
| case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | ||||
| eval = bsdf_ashikhmin_velvet_eval_transmit(sc, sd->I, omega_in, pdf); | eval = bsdf_ashikhmin_velvet_eval_transmit(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_DIFFUSE_TOON_ID: | case CLOSURE_BSDF_DIFFUSE_TOON_ID: | ||||
| eval = bsdf_diffuse_toon_eval_transmit(sc, sd->I, omega_in, pdf); | eval = bsdf_diffuse_toon_eval_transmit(sc, sd->I, omega_in, pdf); | ||||
| break; | break; | ||||
| ▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | case CLOSURE_BSDF_REFLECTION_ID: | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_REFRACTION_ID: | case CLOSURE_BSDF_REFRACTION_ID: | ||||
| bsdf_refraction_blur(sc, roughness); | bsdf_refraction_blur(sc, roughness); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_TRANSPARENT_ID: | case CLOSURE_BSDF_TRANSPARENT_ID: | ||||
| bsdf_transparent_blur(sc, roughness); | bsdf_transparent_blur(sc, roughness); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ID: | case CLOSURE_BSDF_MICROFACET_GGX_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID: | ||||
| bsdf_microfacet_ggx_blur(sc, roughness); | bsdf_microfacet_ggx_blur(sc, roughness); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_ID: | ||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID: | |||||
| case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | case CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID: | ||||
| bsdf_microfacet_beckmann_blur(sc, roughness); | bsdf_microfacet_beckmann_blur(sc, roughness); | ||||
| break; | break; | ||||
| #ifdef __ANISOTROPIC__ | #ifdef __ANISOTROPIC__ | ||||
| case CLOSURE_BSDF_WARD_ID: | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID: | ||||
| bsdf_ward_blur(sc, roughness); | case CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID: | ||||
| bsdf_ashikhmin_shirley_blur(sc, roughness); | |||||
| break; | break; | ||||
| #endif | #endif | ||||
| case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | case CLOSURE_BSDF_ASHIKHMIN_VELVET_ID: | ||||
| bsdf_ashikhmin_velvet_blur(sc, roughness); | bsdf_ashikhmin_velvet_blur(sc, roughness); | ||||
| break; | break; | ||||
| case CLOSURE_BSDF_DIFFUSE_TOON_ID: | case CLOSURE_BSDF_DIFFUSE_TOON_ID: | ||||
| bsdf_diffuse_toon_blur(sc, roughness); | bsdf_diffuse_toon_blur(sc, roughness); | ||||
| break; | break; | ||||
| Show All 22 Lines | |||||