public static ScnFile getSceneBug() { ScnFile s = new ScnFile(); //s.DefaultCamera.Origin = new Vector(3.2, -1.2, -2); s.DefaultCamera.Origin = new Vector(3.2, -1.2, -2); s.DefaultCamera.LookAt = new Vector(1, -0.2, 0); //s.Lights.Add(new PointLight(new Vector(1.5, -2.7, -5.0), new Lucid.Base.Color(1, 1, 1, 1), 2)); //s.Lights.Add(new PointLight(new Vector(0, -3, 1), new Lucid.Base.Color(1, 1, 1, 1), 2.6)); s.Lights.Add(new PointLight(new Vector(-1, -0.8, -4), new Color(1, 1, 1, 1), 1.5)); double d = 0.1; double l = 4; Material m1 = getRandReflMaterial(); Material m2 = getRandReflMaterial(); /*s.Primitives.Add(new Triangle(m1, new Vector(-l, d, l), new Vector(-l, d, -l), new Vector(l, d, l))); s.Primitives.Add(new Triangle(m1, new Vector(l, d, -l), new Vector(l, d, l), new Vector(-l, d, -l)));*/ /*s.Primitives.Add(new Triangle(m2, new Vector(-l, d, -l), new Vector(-l, d, l), new Vector(-l, -2*l, -l))); s.Primitives.Add(new Triangle(m2, new Vector(-l, -2*l, -l), new Vector(-l, d, l), new Vector(-l, -2*l, l)));*/ s.Primitives.Add(new Sphere(new Vector(1.5, 10, 1.5), 10, getRandReflMaterial())); //s.Primitives.Add(new BoxPrimitive(new Vector(-10, 4, -10), new Vector(10, 4, 10), getRandMaterial())); //addSphereGrid(s); s.ModelFiles.Add(new ModelFileInfo("Mclaren.wrl", (Matrix.RotateY90 * Matrix.RotateY90 * Matrix.RotateZ90 * Matrix.RotateZ90 * Matrix.RotateY90).Translate(0.3, 0, 0))); return s; }
public Form1() { InitializeComponent(); // create scene representation this.scnFile = Scenes.getSceneCarTest(); }
private void benchmarkTriangles() { txtTimes.Clear(); int steps = 6; int count2 = 128; for (int i = 0; i < steps; i++) { this.scnFile = Scenes.getSceneBenchTriangles(count2); load_Click(this, EventArgs.Empty); // load render_Click(this, EventArgs.Empty); // render txtTimes.Text += count2 + ", " + lblTime.Text + Environment.NewLine; //Application.DoEvents(); count2 *= 2; } }
private void benchmarkSpheres() { txtTimes.Clear(); int step = 3; int steps = 4; int start = 6; for (int count = start; count < start + step * steps; count += step) { this.scnFile = Scenes.getSceneBenchSpheres(count); load_Click(this, EventArgs.Empty); // load render_Click(this, EventArgs.Empty); // render txtTimes.Text += count * count * count + ", " + lblTime.Text + Environment.NewLine; //Application.DoEvents(); } }
public static ScnFile getSceneBenchTriangles(int triangleCount) { ScnFile s = new ScnFile(); s.Lights.Add(new PointLight(new Vector(1.5, -2.7, -5.0), new Color(1, 1, 1, 1), 1)); s.DefaultCamera.Origin = new Vector(0, 0, -4); s.DefaultCamera.LookAt = new Vector(0, 0, 0); //addSphereGrid(s); //addBoxes(s.Primitives); addTriangles(s.Primitives, triangleCount, 0.1); /*s.Primitives.Add(new Triangle(getRandMaterial(), new Vector(2, 0.7, 0.3), new Vector(-2, -2.7, 0.3), new Vector(-2, 0.7, 4.3)));*/ return s; }
public void AddToSceneFrom(Scene scene, ScnFile scnFile, string modelPath) { foreach (Primitive primitive in scnFile.Primitives) { scene.addObject(primitive); } foreach (Light light in scnFile.Lights) { scene.addLight(light); } // use VRML loader to load external models Vrml2FormatLoader vrmlLoader = new Vrml2FormatLoader(); foreach (ModelFileInfo modelFile in scnFile.ModelFiles) { // assume model in same folder as xml file string modelFileName = Path.Combine(modelPath, modelFile.FileName); vrmlLoader.TransformMatrix = modelFile.TransformMatrix; vrmlLoader.AddToSceneFrom(scene, modelFileName); } }
public static ScnFile getSceneCarTest() { ScnFile s = new ScnFile(); //s.DefaultCamera.Origin = new Vector(3.2, -1.2, -2); s.DefaultCamera.Origin = new Vector(3, -0.4, -2) * 1.6; s.DefaultCamera.LookAt = new Vector(0, -1, 0); //s.Lights.Add(new PointLight(new Vector(1.5, -2.7, -5.0), new Lucid.Base.Color(1, 1, 1, 1), 2)); s.Lights.Add(new PointLight(new Vector(2, -5, -3), new Color(1, 1, 1, 1), 1.2)); //s.Lights.Add(new PointLight(new Vector(-8, -4, 4), new Lucid.Base.Color(1, 1, 1, 1), 0.5)); s.Lights.Add(new PointLight(new Vector(6, -4, 0), new Color(1, 1, 1, 1), 1.5)); s.Lights.Add(new PointLight(new Vector(-16, -16, -4), new Color(1, 1, 1, 1), 1)); double d = 0.05; double l = 20; Material m1 = getRandReflMaterial(); Material m2 = getRandReflMaterial(); s.Primitives.Add(new Triangle(m1, new Vector(-l, d, l), new Vector(-l, d, -l), new Vector(l, d, l))); s.Primitives.Add(new Triangle(m1, new Vector(l, d, -l), new Vector(l, d, l), new Vector(-l, d, -l))); s.Primitives.Add(new Sphere(new Vector(-6, -6, 0), 6, getRandReflMaterial())); s.Primitives.Add(new Sphere(new Vector(0.5, -5, 7), 5, getRandReflMaterial())); //s.Primitives.Add(new BoxPrimitive(new Vector(-10, 1, -10), new Vector(10, 1.1, 10), getRandMaterial())); //addSphereGrid(s); s.ModelFiles.Add(new ModelFileInfo("Mclaren.wrl", (Matrix.Scaling(1.5) * Matrix.RotateY90 * Matrix.RotateZ90 * Matrix.RotateZ90 * Matrix.RotateY90).Translate(0.6, 0, 0))); return s; }
private static void addSphereGrid(ScnFile file, int xs, int ys, int zs) { Material mat = getRandMaterial(); file.Materials.Add(mat); // real dimensions double xw = 8; double yw = 8; double zw = 8; for (int x = 0; x < xs; x++) { for (int y = 0; y < ys; y++) { for (int z = 0; z < zs; z++) { Vector center = new Vector(-4 + x / (double)xs * xw, -4 + y / (double)ys * yw, 2 + z / (double)zs * zw); file.Primitives.Add(new Sphere(center, 0.05/*rand(0.06, 0.16)*/, mat)); } } } }
public static ScnFile getSceneSimple() { ScnFile s = new ScnFile(); //s.DefaultCamera.Origin = new Vector(3.2, -1.2, -2); s.DefaultCamera.Origin = new Vector(3, -3, -2) * 1.4; s.DefaultCamera.LookAt = new Vector(0, -1, 0); s.Lights.Add(new PointLight(new Vector(2, -5, -3), new Color(1, 1, 1, 1), 1.2)); double d = 0.5; double l = 20; Material m1 = getRandReflMaterial(); s.Primitives.Add(new Triangle(m1, new Vector(-l, d, l), new Vector(-l, d, -l), new Vector(l, d, l))); s.Primitives.Add(new Triangle(m1, new Vector(l, d, -l), new Vector(l, d, l), new Vector(-l, d, -l))); return s; }
public static ScnFile getSceneMc1() { ScnFile s = new ScnFile(); s.DefaultCamera.Origin = new Vector(2, -2, -3); s.DefaultCamera.LookAt = new Vector(0, 0, 0); //s.Lights.Add(new PointLight(new Vector(1.5, -2.7, -5.0), new Lucid.Base.Color(1, 1, 1, 1), 2)); s.Lights.Add(new PointLight(new Vector(2, -2.5, 1), new Color(1, 1, 1, 1), 1.6)); s.Lights.Add(new PointLight(new Vector(-2, -1, -3), new Color(1, 1, 1, 1), 2.5)); //s.Primitives.Add(new Sphere(new Vector(-1, 8, -1), 6, getRandMaterial())); //s.Primitives.Add(new BoxPrimitive(new Vector(-10, 4, -10), new Vector(10, 4, 10), getRandMaterial())); //addSphereGrid(s); s.ModelFiles.Add(new ModelFileInfo("Mclaren.wrl", Matrix.RotateZ90 * Matrix.RotateZ90 * Matrix.RotateY90)); return s; }
public static ScnFile getSceneChairTest() { ScnFile s = new ScnFile(); //s.DefaultCamera.Origin = new Vector(3.2, -1.2, -2); s.DefaultCamera.Origin = new Vector(3, -0.4, -2) * 1.6; s.DefaultCamera.LookAt = new Vector(0, -1, 0); //s.Lights.Add(new PointLight(new Vector(1.5, -2.7, -5.0), new Lucid.Base.Color(1, 1, 1, 1), 2)); s.Lights.Add(new PointLight(new Vector(2, -5, -3), new Color(1, 1, 1, 1), 1.2)); //s.Lights.Add(new PointLight(new Vector(-8, -4, 4), new Lucid.Base.Color(1, 1, 1, 1), 0.5)); s.Lights.Add(new PointLight(new Vector(3, -5, 1.5), new Color(1, 1, 1, 1), 1.5)); double d = 0.4; double l = 20; Material m1 = getRandReflMaterial(); Material m2 = getRandReflMaterial(); s.Primitives.Add(new Triangle(m1, new Vector(-l, d, l), new Vector(-l, d, -l), new Vector(l, d, l))); s.Primitives.Add(new Triangle(m1, new Vector(l, d, -l), new Vector(l, d, l), new Vector(-l, d, -l))); /*s.Primitives.Add(new Triangle(m2, new Vector(-l, d, -l), new Vector(-l, d, l), new Vector(-l, -2*l, -l))); s.Primitives.Add(new Triangle(m2, new Vector(-l, -2*l, -l), new Vector(-l, d, l), new Vector(-l, -2*l, l)));*/ s.Primitives.Add(new Sphere(new Vector(-6, -6, 0), 5.7, getRandReflMaterial())); //s.Primitives.Add(new Sphere(new Vector(0, 0, 10), 6, getRandMaterial())); //s.Primitives.Add(new BoxPrimitive(new Vector(-10, 4, -10), new Vector(10, 4, 10), getRandMaterial())); //addSphereGrid(s); s.ModelFiles.Add(new ModelFileInfo("chair.wrl", Matrix.RotateX90 * Matrix.Scaling(0.1))); return s; }