Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/integrator/mnee.h
| Show First 20 Lines • Show All 613 Lines • ▼ Show 20 Lines | ccl_device_forceinline Spectrum mnee_eval_bsdf_contribution(ccl_private ShaderClosure *closure, | ||||
| float cosHI = dot(Ht, wi); | float cosHI = dot(Ht, wi); | ||||
| float alpha2 = bsdf->alpha_x * bsdf->alpha_y; | float alpha2 = bsdf->alpha_x * bsdf->alpha_y; | ||||
| float cosThetaM = dot(bsdf->N, Ht); | float cosThetaM = dot(bsdf->N, Ht); | ||||
| /* Now calculate G1(i, m) and G1(o, m). */ | /* Now calculate G1(i, m) and G1(o, m). */ | ||||
| float G; | float G; | ||||
| if (bsdf->type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID) { | if (bsdf->type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID) { | ||||
| G = bsdf_G<true>(alpha2, cosNI, cosNO); | G = bsdf_G<MicrofacetType::BECKMANN>(alpha2, cosNI, cosNO); | ||||
| } | } | ||||
| else { /* bsdf->type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID assumed */ | else { /* bsdf->type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID assumed */ | ||||
| G = bsdf_G<false>(alpha2, cosNI, cosNO); | G = bsdf_G<MicrofacetType::GGX>(alpha2, cosNI, cosNO); | ||||
| } | } | ||||
| /* | /* | ||||
| * bsdf_do = (1 - F) * D_do * G * |h.wi| / (n.wi * n.wo) | * bsdf_do = (1 - F) * D_do * G * |h.wi| / (n.wi * n.wo) | ||||
| * pdf_dh = D_dh * cosThetaM | * pdf_dh = D_dh * cosThetaM | ||||
| * D_do = D_dh * |dh/do| | * D_do = D_dh * |dh/do| | ||||
| * | * | ||||
| * contribution = bsdf_do * |do/dh| * |n.wo / n.h| / pdf_dh | * contribution = bsdf_do * |do/dh| * |n.wo / n.h| / pdf_dh | ||||
| ▲ Show 20 Lines • Show All 432 Lines • Show Last 20 Lines | |||||