Exemplo n.º 1
0
        public void TestAreaLightFindingSinglePoint()
        {
            var corner = Point.Zero;
            var v1     = new Vector(2, 0, 0);
            var v2     = Vector.VectorZ;

            var light = new AreaLight(corner, v1, 4, v2, 2, Color.White);

            light.JitterBy = Sequence.Generate(0.5, 0.5, 0.5);
            Point pt;

            pt = light.PointOnLight(0, 0);
            Assert.AreEqual(pt, new Point(0.25, 0, 0.25));

            pt = light.PointOnLight(1, 0);
            Assert.AreEqual(pt, new Point(0.75, 0, 0.25));

            pt = light.PointOnLight(0, 1);
            Assert.AreEqual(pt, new Point(0.25, 0, 0.75));

            pt = light.PointOnLight(2, 0);
            Assert.AreEqual(pt, new Point(1.25, 0, 0.25));

            pt = light.PointOnLight(3, 1);
            Assert.AreEqual(pt, new Point(1.75, 0, 0.75));
        }
Exemplo n.º 2
0
        public void FindingSinglePointOnAnAreaLight_ShouldWork(double u, double v, Point result)
        {
            var corner = new Point(0, 0, 0);
            var v1     = new Vector(2, 0, 0);
            var v2     = new Vector(0, 0, 1);
            var light  = new AreaLight(corner, v1, 4, v2, 2, Color.White);

            light.JitterBy = new Sequence(new List <double> {
                0.5
            });
            var pt = light.PointOnLight(u, v);

            Assert.Equal(result, pt, PointComparer);
        }