Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }