Esempio n. 1
0
        public override (SurfaceInteraction, double) Sample()
        {
            (double x, double y) = Samplers.UniformSampleSquare();

            var pObj = new Vector3((x - 0.5) * width, (y - 0.5) * height, 0);

            var    n    = new Vector3(0, 0, 1);
            var    dpdu = new Vector3(1, 0, 0);
            double pdf  = 1 / Area();

            return(ObjectToWorld.Apply(new SurfaceInteraction(pObj, n, Vector3.ZeroVector, dpdu, this)), pdf);
        }