public TextureScene() { FileName = "Assignment4_Texture.jpg"; Integrator = (IIntegrator)Activator.CreateInstance(Constants.Integrator); Texture back = new Texture("./Textures/Skybox_stars/backmo.jpg", false); Texture bottom = new Texture("./Textures/Skybox_stars/botmo.jpg", false); Texture front = new Texture("./Textures/Skybox_stars/frontmo.jpg", false); Texture left = new Texture("./Textures/Skybox_stars/leftmo.jpg", false); Texture right = new Texture("./Textures/Skybox_stars/rightmo.jpg", false); Texture top = new Texture("./Textures/Skybox_stars/topmo.jpg", false); SkyBox.LoadSkybox(left, right, top, bottom, front, back); //List of objects //Sphere sphere = new Sphere(textureMaterial, new Vector3(0, 0, 0), .3f); ColladaParser parser = new ColladaParser(); parser.ParseColladaFile("./geometries/collada/deathstar.dae", 1024); Camera = parser.Cameras.Values.First(); Camera.PreProcess(); Film = new Film(Camera.ScreenWidth, Camera.ScreenHeight); Objects = new IntersectableList(); foreach (IIntersectable intersectable in parser.Meshes.Values) { Objects.Add(intersectable); } Lights = new List <ILight>(); foreach (ILight light in parser.Lights.Values) { Lights.Add(light); } }
public ColladaScene() { FileName = "Assignment_Collada.jpg"; ColladaParser parser = new ColladaParser(); parser.ParseColladaFile("./geometries/collada/reference.dae", 1024); Integrator = (IIntegrator)Activator.CreateInstance(Constants.Integrator); /*Camera = new PinholeCamera() * { * FieldOfViewX = 60f, * FieldOfViewY = 60f, * ScreenWidth = 128, * ScreenHeight = 128, * Eye = new Vector4(0, 0, -50, 1), * Up = new Vector4(0, 1, 0, 1), * LookAt = new Vector4(0, 0, 0, 1) * }; * Camera.PreProcess(); */ LambertMaterial green = new LambertMaterial(new Color(0, 1, 0)); LambertMaterial red = new LambertMaterial(new Color(1, 0, 0)); LambertMaterial blue = new LambertMaterial(new Color(0, 0, 1)); LambertMaterial gray = new LambertMaterial(new Color(0.8f, 0.8f, 0.8f)); LambertMaterial black = new LambertMaterial(new Color(0, 0, 0)); LambertMaterial white = new LambertMaterial(new Color(1, 1, 1)); //List of objects Sphere sphere = new Sphere(white, new Vector3(0, 0, .25f), .3f); Plane p1 = new Plane(1f, new Vector3(0, 1, 0)) { Material = white }; Plane p2 = new Plane(1f, new Vector3(0, 0, -1)) { Material = white }; Plane p3 = new Plane(1f, new Vector3(-1, 0, 0)) { Material = green }; Plane p4 = new Plane(1f, new Vector3(1, 0, 0)) { Material = blue }; Plane p5 = new Plane(1f, new Vector3(0, -1, 0)) { Material = white }; Rectangle rect = new Rectangle(new Vector3(-0.2f, .99f, 0f), new Vector3(.5f, 0, 0), new Vector3(0, 0, 0.5f)) { Material = blue }; Objects = new IntersectableList(); /* * Objects.Add(p1); * Objects.Add(p2); * Objects.Add(p3); * Objects.Add(p4); * Objects.Add(p5); */ Lights = new List <ILight>(); foreach (ILight light in parser.Lights.Values) { Lights.Add(light); } foreach (IIntersectable intersectable in parser.Meshes.Values) { Objects.Add(intersectable); } foreach (ICamera camera in parser.Cameras.Values) { Camera = camera; Camera.PreProcess(); } if (Camera == null || float.IsNaN(Camera.AspectRation)) { Integrator = (IIntegrator)Activator.CreateInstance(Constants.Integrator); Camera.FieldOfViewX = 30f; Camera.FieldOfViewY = 30f; Camera.ScreenWidth = 512; Camera.ScreenHeight = 512; Camera.Eye = new Vector4(0, 0, -2, 1); Camera.Up = new Vector4(0, 1, 0, 1); Camera.LookAt = new Vector4(0, 0, 0, 1); Camera.PreProcess(); } Film = new Film(Camera.ScreenWidth, Camera.ScreenHeight); }