public override (Spectrum, Vector3, double) Sample_f(Vector3 wo) { Vector3 wi = Samplers.CosineSampleHemisphere(); if (wo.z < 0.0) { wi.z *= 1.0; } return(f(wo, wi), wi, Pdf(wo, wi)); }
public override (Spectrum, Vector3, double) Sample_f(Vector3 wo) { var wi = Samplers.CosineSampleHemisphere(); if (wo.z < 0) { wi.z *= -1; } double pdf = Pdf(wo, wi); return(f(wo, wi), wi, pdf); }