[Bf-blender-cvs] [7bd7538b254] microfacet_hair: Revert to original implementation (needs investigation)
Weizhen Huang
noreply at git.blender.org
Wed Dec 14 15:19:00 CET 2022
Commit: 7bd7538b2540e01b2885565215f520ea2bfd392a
Author: Weizhen Huang
Date: Wed Dec 14 15:18:43 2022 +0100
Branches: microfacet_hair
https://developer.blender.org/rB7bd7538b2540e01b2885565215f520ea2bfd392a
Revert to original implementation (needs investigation)
===================================================================
M intern/cycles/kernel/closure/bsdf_hair_microfacet.h
===================================================================
diff --git a/intern/cycles/kernel/closure/bsdf_hair_microfacet.h b/intern/cycles/kernel/closure/bsdf_hair_microfacet.h
index 8cf39366111..b5e88464776 100644
--- a/intern/cycles/kernel/closure/bsdf_hair_microfacet.h
+++ b/intern/cycles/kernel/closure/bsdf_hair_microfacet.h
@@ -612,16 +612,16 @@ ccl_device Spectrum bsdf_microfacet_hair_eval_circular(KernelGlobals kg,
const float3 R = bsdf_microfacet_hair_eval_r_circular(sc, wi, wo) +
bsdf_microfacet_hair_eval_tt_trt_circular(kg, sc, wi, wo, sd->lcg_state);
- /* This choice could be better */
+ /* TODO: better estimation of the pdf */
*pdf = 1.f;
// original from Huang's EGSR 2022
- // return rgb_to_spectrum(R / cos_theta(wi));
+ return rgb_to_spectrum(R / cos_theta(wi));
// correction: the extra cos_theta(wo) corresponds to the lack of consideration of Zinke's
// cos_theta_i^2 in the BCSDF; for instance eq[2] in Huang's should include an extra cos_theta_i
// (plus here remember wi and wo meanings are flipped)
- return rgb_to_spectrum(R / (cos_theta(wi) * cos_theta(wo)));
+ /* return rgb_to_spectrum(R / (cos_theta(wi) * cos_theta(wo))); */
}
ccl_device int bsdf_microfacet_hair_sample_circular(const KernelGlobals kg,
@@ -814,12 +814,12 @@ ccl_device int bsdf_microfacet_hair_sample_circular(const KernelGlobals kg,
}
// original from Huang's EGSR 2022
- //*eval *= visibility;
+ *eval *= visibility;
// correction: the extra cos_theta(wo) corresponds to the lack of consideration of Zinke's
// cos_theta_i^2 in the BCSDF; for instance eq[2] in Huang's should include an extra cos_theta_i
// (plus here remember wi and wo meanings are flipped)
- *eval *= visibility / cos_theta(wo);
+ /* *eval *= visibility / cos_theta(wo); */
*omega_in = wo.x * X + wo.y * Y + wo.z * Z;
@@ -1155,8 +1155,8 @@ ccl_device Spectrum bsdf_microfacet_hair_eval_elliptic(KernelGlobals kg,
*pdf = 1.f;
- // return rgb_to_spectrum(R / cos_theta(wi)); // original from Huang's EGSR 2022
- return rgb_to_spectrum(R / (cos_theta(wi) * cos_theta(wo)));
+ return rgb_to_spectrum(R / cos_theta(wi)); // original from Huang's EGSR 2022
+ /* return rgb_to_spectrum(R / (cos_theta(wi) * cos_theta(wo))); */
// correction: the extra cos_theta(wo) corresponds to the lack of consideration of Zinke's
// cos_theta_i^2 in the BCSDF; for instance eq[2] in Huang's should include an extra cos_theta_i
// (plus here remember wi and wo meanings are flipped)
@@ -1373,8 +1373,8 @@ ccl_device int bsdf_microfacet_hair_sample_elliptic(const KernelGlobals kg,
label |= LABEL_TRANSMIT;
}
- //*eval *= visibility; // original from Huang's EGSR 2022
- *eval *= visibility / cos_theta(wo);
+ *eval *= visibility; // original from Huang's EGSR 2022
+ /* *eval *= visibility / cos_theta(wo); */
// correction: the extra cos_theta(wo) corresponds to the lack of consideration of Zinke's
// cos_theta_i^2 in the BCSDF; for instance eq[2] in Huang's should include an extra cos_theta_i
// (plus here remember wi and wo meanings are flipped)
More information about the Bf-blender-cvs
mailing list