Ejemplo n.º 1
0
        public void AddSpheres()
        {
            var palette = new MagentaOrangePalette();

            var mat1 = new Material
            {
                Color        = new Vector3(98, 0, 238),
                Texture      = new CheckerPattern(10),
                TextureAlpha = 0.5f,
                Reflectivity = 0.25f
            };

            var mat2 = new Material
            {
                Color = new Vector3(3, 218, 198),
                //Texture = new CheckerPattern(10),
                //TextureAlpha = 0.5f,
                Reflectivity = 1f
            };

            float h1 = 100f - Vector3.Distance(new Vector3(-4, -2, 3), Shapes[0].O);

            Shapes.Add(new Sphere(new Vector3(3, -1.9f, 3), mat1, 2));
            Shapes.Add(new Sphere(new Vector3(1, -1.9f, 6), mat2, 2));
        }
Ejemplo n.º 2
0
        public void AddSpheres()
        {
            var palette        = new MagentaOrangePalette();
            var mirrorMaterial = new Material
            {
                Color        = new Vector3(100),
                Reflectivity = 1f
            };
            var glassMaterial = new Material
            {
                Color = new Vector3(255, 0, 0),
                //Texture = new CheckerPattern(10),
                //TextureAlpha = 0.5f
                Transmissiveness = 1f,
                RefractionIndex  = 1.01f
            };

            float offsetY = -1.2f;

            for (int i = 0; i < 5; i++)
            {
                var sphere = new Sphere(new Vector3(0, 0, 1), i % 2 == 0 ? mirrorMaterial : mirrorMaterial, (6 - (float)i) / 6);
                sphere.R      *= 0.8f;
                sphere.ShapeId = _shapeId++;
                offsetY       += 2 * sphere.R;
                sphere.O.Y     = -offsetY;
                Shapes.Add(sphere);
            }

            float h1 = 100f - Vector3.Distance(new Vector3(-4, -2, 3), Shapes[0].O);

            Shapes.Add(new Sphere(new Vector3(-4, -1.5f, 3), glassMaterial, 2));
            Shapes.Add(new Sphere(new Vector3(4, -1.5f, 3), mirrorMaterial, 2));

            float h2 = 100f - Vector3.Distance(new Vector3(-4, -2, 8), Shapes[0].O);

            Shapes.Add(new Sphere(new Vector3(-3, -1.1f, 8), mirrorMaterial, 2));
            Shapes.Add(new Sphere(new Vector3(3, -1.1f, 8), glassMaterial, 2));
        }
Ejemplo n.º 3
0
        public void AddSpheres()
        {
            int   gridX          = 12;
            int   gridZ          = 12;
            float spacing        = 4f;
            var   palette        = new MagentaOrangePalette();
            var   mirrorMaterial = new Material
            {
                Color        = new Vector3(210),
                Reflectivity = 1f,
                Texture      = new CheckerPattern(10),
                TextureAlpha = .25f,
            };

            for (int i = 0; i <= gridX; i++)
            {
                for (int j = 0; j <= gridZ; j++)
                {
                    var coloredMaterial = new Material
                    {
                        Color        = palette.GetColor((2 * ((float)(i * j) / (gridX * gridZ)) + 0.5f) % 1f) * 160,
                        Texture      = new CheckerPattern(10),
                        TextureAlpha = 0.25f
                    };

                    var sphere = new Sphere(
                        new Vector3(spacing * i - gridX * spacing / 2, 0, spacing * j - gridZ * spacing / 2),
                        (i + j) % 2 == 0 ? mirrorMaterial : coloredMaterial,
                        1f)
                    {
                        ShapeId = _shapeId++
                    };

                    float dist = Vector3.Distance(sphere.O, Shapes[0].O);
                    sphere.O = new Vector3(sphere.O.X, dist - 100f - 1f, sphere.O.Z);
                    Shapes.Add(sphere);
                }
            }
        }
Ejemplo n.º 4
0
        public void AddSpheres()
        {
            var palette = new MagentaOrangePalette();

            var mat1 = new Material
            {
                Color        = new Vector3(98, 0, 238),
                Texture      = new CheckerPattern(20),
                TextureAlpha = 1f,
            };

            var mat2 = new Material
            {
                Color            = new Vector3(3, 218, 198),
                Transmissiveness = 1f,
                RefractionIndex  = 1f
            };

            float h1 = 100f - Vector3.Distance(new Vector3(-4, -2, 3), Shapes[0].O);

            Shapes.Add(new Sphere(new Vector3(0, -4, 6), mat1, 4));
            Shapes.Add(new Sphere(new Vector3(0, -2, 2), mat2, 2));
        }
Ejemplo n.º 5
0
        public void AddSpheres()
        {
            var palette        = new MagentaOrangePalette();
            var mirrorMaterial = new Material
            {
                Color        = new Vector3(210),
                Reflectivity = 1f
            };
            var checkerMaterial = new Material
            {
                Color        = new Vector3(150),
                Texture      = new GridPattern(20, 0.1f, (float)Math.PI / 4),
                TextureAlpha = 0.8f
            };

            float offsetY = -1.1f;

            for (int i = 0; i < 5; i++)
            {
                var sphere = new Sphere(new Vector3(0, 0, 2), mirrorMaterial, (6 - (float)i) / 6);
                sphere.R      *= 0.8f;
                sphere.ShapeId = _shapeId++;
                offsetY       += 2 * sphere.R;
                sphere.O.Y     = -offsetY;
                Shapes.Add(sphere);
            }

            float h1 = 100f - Vector3.Distance(new Vector3(-4, -2, 3), Shapes[0].O);

            Shapes.Add(new Sphere(new Vector3(-4, -1.5f, 3), mirrorMaterial, 2));
            Shapes.Add(new Sphere(new Vector3(4, -1.5f, 3), mirrorMaterial, 2));

            float h2 = 100f - Vector3.Distance(new Vector3(-4, -2, 8), Shapes[0].O);

            Shapes.Add(new Sphere(new Vector3(-3, -1.1f, 8), mirrorMaterial, 2));
            Shapes.Add(new Sphere(new Vector3(3, -1.1f, 8), mirrorMaterial, 2));
        }