public static World Create() { var world = new World(new Camera(new Vector3(-6, 6, 0), new Quaternion(MathHelper.DegreesToRadians(10), MathHelper.DegreesToRadians(30), 0))); var environment = new HDRTexture(@"assets/textures/stpeters_cross.hdr", 80000); world.Environent = new EnvironmentBox(new CubeMapTexture(environment)); world.Environent.AmbientLight = new Vector3(0.87f, 0.56f, 0.46f) * 0.05f; world.addObject(new Plane(new Vector3(0, 0, 0), Quaternion.Identity) { Material = { Diffuse = new Vector3(0.6f), Texture = new DiffuseTexture("assets/textures/wood.png", 8) } }); var mesh = new Mesh(new Vector3(0, 0, 7), Quaternion.Identity) { Material = { Diffuse = new Vector3(1, 0.686f, 0.278f), Specular = new Vector3(1, 0.686f, 0.278f), Shinyness = 20, IsDielectic = true, //Roughness = 0.2f, Reflectivity = 0.6f }, Scale = new Vector3(1f), }; mesh.ImportMesh("assets/models/stanford.obj"); world.addObject(mesh); world.addLight(new PointLight(new Vector3(0, 60, -40), Vector3.One, 120000)); // world.addLight(new PointLight(new Vector3(0, 70, -50), Vector3.One, 120000)); // world.addLight(new PointLight(new Vector3(30, 90, 40), Vector3.One, 120000)); return(world); }
public static World CreateTestScene() { var world = new World(new Camera(new Vector3(-2f), new Quaternion(MathHelper.DegreesToRadians(35), MathHelper.DegreesToRadians(-35), 0))); var environment = new HDRTexture(@"assets/textures/uffizi_cross.hdr", 100000); world.Environent = new EnvironmentBox(new CubeMapTexture(environment)); world.Environent.AmbientLight = new Vector3(0.87f, 0.56f, 0.46f) * 0.05f; var sphere = new Sphere(new Vector3(0), 1, Quaternion.Identity) { Material = { Diffuse = new Vector3(1.0f, .5f, .5f) } }; //world.addObject(sphere); var mesh = new Mesh(Vector3.Zero, Quaternion.Identity) { Material = { Diffuse = new Vector3(1, 0.5f, 0.5f) }, Scale = new Vector3(.5f) }; mesh.ImportMesh("assets/models/teapot.obj"); world.addObject(mesh); world.addObject(new Plane(new Vector3(0, -3, 0), Quaternion.Identity) { Material = { Diffuse = new Vector3(1), IsDielectic = true, Reflectivity = .7f } }); world.addObject(new Plane(new Vector3(0, 3, 0), new Quaternion(MathHelper.DegreesToRadians(180), 0, 0)) { Material = { Diffuse = new Vector3(1), IsDielectic = true, Reflectivity = .7f } }); world.addObject(new Plane(new Vector3(0, 0, 3), new Quaternion(MathHelper.DegreesToRadians(90), 0, 0)) { Material = { Diffuse = new Vector3(1), IsDielectic = true, Reflectivity = .7f } }); world.addObject(new Plane(new Vector3(0, 0, -3), new Quaternion(MathHelper.DegreesToRadians(-90), 0, 0)) { Material = { Diffuse = new Vector3(1), IsDielectic = true, Reflectivity = .7f } }); world.addObject(new Plane(new Vector3(-3, 0, 0), new Quaternion(0, 0, MathHelper.DegreesToRadians(90))) { Material = { Diffuse = new Vector3(1), IsDielectic = true, Reflectivity = .7f } }); world.addObject(new Plane(new Vector3(3, 0, 0), new Quaternion(0, 0, MathHelper.DegreesToRadians(-90))) { Material = { Diffuse = new Vector3(1), IsDielectic = true, Reflectivity = .7f } }); world.addLight(new SphereAreaLight(new Vector3(1.5f, -1.5f, 1.5f), new Vector3(0.5f, 0.4f, 0.4f), 150) { Radius = .5f }); world.addLight(new SphereAreaLight(new Vector3(-1.5f, 1.5f, -1.5f), new Vector3(0.5f, 0.4f, 0.4f), 150) { Radius = .5f }); return(world); }
public static World Create() { var world = new World(new Camera(new Vector3(3, 4, 0.5f), new Quaternion(MathHelper.DegreesToRadians(0), MathHelper.DegreesToRadians(-0), 0))); var environment = new HDRTexture(@"assets/textures/kitchen_cross.hdr", 100000); world.Environent = new EnvironmentBox(new CubeMapTexture(environment)); world.Environent.AmbientLight = new Vector3(0.87f, 0.56f, 0.46f) * 0.05f; var plane = new Plane(new Vector3(0, -2, 0), Quaternion.Identity) { Material = { Diffuse = new Vector3(0.2f), IsDielectic = true, Reflectivity = 0.3f, Texture = new DiffuseTexture(@"assets/textures/wall.png", 5f) } }; world.addObject(plane); var mesh1 = new Mesh(new Vector3(9, 0, 8), Quaternion.Identity) { Material = { Diffuse = new Vector3(.5f) }, Scale = new Vector3(1f), }; mesh1.ImportMesh("assets/models/lamp.obj"); world.addObject(mesh1); var mesh2 = new Mesh(new Vector3(0, 0, 5), Quaternion.Identity) { Material = { IsMirror = true, Diffuse = new Vector3(1) }, Scale = new Vector3(1) }; mesh2.ImportMesh("assets/models/teapot.obj"); world.addObject(mesh2); var mesh3 = new Mesh(new Vector3(45, 45, 55), Quaternion.Identity) { Material = { Diffuse = new Vector3(.5f, .7f, 1f), IsDielectic = true, Reflectivity = .2f }, Scale = new Vector3(1.5f) }; mesh3.ImportMesh("assets/models/airplane.obj"); world.addObject(mesh3); var mesh4 = new Mesh(new Vector3(-10, 25, 45), Quaternion.Identity) { Material = { Diffuse = new Vector3(1f, .5f, .8f) }, X = 3, Z = 1, Scale = new Vector3(.7f) }; mesh4.ImportMesh("assets/models/dragon.obj"); world.addObject(mesh4); var light1 = new PointLight(new Vector3(10, 30, 40), Vector3.One, 2500); world.addLight(light1); var light2 = new PointLight(new Vector3(8, 8f, 0), Vector3.One, 1500); world.addLight(light2); var light3 = new PointLight(new Vector3(30, 30, 40), Vector3.One, 1000); world.addLight(light3); return(world); }