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)); }
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)); }
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); } } }
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)); }
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)); }