// -- methods public virtual void InitExports() { _exports = new Dictionary <string, IExportable>(); IExportable export; export = new JsonExporter(); _exports.Add(export.Type, export); export = new BinaryExporter(); _exports.Add(export.Type, export); export = new CsvExporter(); _exports.Add(export.Type, export); // add new import types here }
protected override void LoadContent() { ClearColor = Color.Black; MemoryStream ms = new MemoryStream(); BinaryExporter exporter = new BinaryExporter(); BinaryLoader loader = new BinaryLoader(); Window.Title = "Normal Mapping Sample"; ModelLoaderParameters mlp = new ModelLoaderParameters(); mlp.SwapWindingOrder = true; mlp.PreferLitMaterials = false; mlp.GenerateTangentBasis = true; mlp.NormalGeneration = NormalGeneration.Crease; Spatial model = ContentManager.Load <Spatial>("Models//starship.dxs", mlp); model.SetScale(.15f); //model.Material = ContentManager.Load<Material>("NormalMap.tem"); // model.Material.SetParameter("DiffuseMap", ContentManager.Load<Texture2D>("Textures//rock_diff.dds")); // model.Material.SetParameter("NormalMap", ContentManager.Load<Texture2D>("Textures//rock_norm.dds")); // model.Material.SetParameter("MatSpecular", Color.Gray.ToVector3()); // model.AddController(new RotateController(new Vector3(.5f, .5f, 0), 25f)); //model.ComputeTangentBasis(); // RootNode.AddChild(model); RootNode.SetModelBound(new Tesla.Bounding.BoundingBox()); model = ContentManager.Load <Spatial>("Models//statue.tebo"); Material mat = ContentManager.Load <Material>("NormalMap.tem").Clone(); mat.SetParameter("DiffuseMap", ContentManager.Load <Texture2D>("Textures//statue_diff.dds")); mat.SetParameter("NormalMap", ContentManager.Load <Texture2D>("Textures//statue_norm.dds")); mat.SetParameter("MatSpecular", new Vector3(.3f, .3f, .3f)); model.SetMaterial(mat); model.Rotation = Quaternion.FromAngleAxis(MathHelper.ToRadians(-90), Vector3.Up); model.SetModelBound(new Tesla.Bounding.BoundingBox()); RootNode.AddChild(model); /* * model = ContentManager.Load<Spatial>("Models//statue.dxs", mlp); * model.Rotation = Quaternion.FromAngleAxis(MathHelper.ToRadians(-90), Vector3.Up); * FileStream fs = File.OpenWrite("C:\\Users\\Nicholas Woodfield\\Desktop\\D3D10\\statue2.tebo"); * exporter.Save(model, fs); * fs.Close();*/ }
private void CompileEffectFiles(object sender, MouseEventArgs e) { Platform platform = (Platform)platformSelection.SelectedIndex; String filePath = filePathTextBox.Text; String outputPath = outputPathTextBox.Text; if (String.IsNullOrEmpty(filePath) || !Directory.Exists(filePath)) { MessageBox.Show("Please select a valid file path."); return; } if (String.IsNullOrEmpty(filePath) || !Directory.Exists(outputPath)) { MessageBox.Show("Please select a valid output file path."); return; } int count = effectFilesListBox.CheckedItems.Count; if (count == 0) { progressLabel.Text = "No Files selected."; return; } //Get the file names List <String> files = new List <String>(); bool overwriteAll = overwriteCheck.Checked; for (int i = 0; i < count; i++) { String file = effectFilesListBox.CheckedItems[i] as String; if (overwriteAll) { files.Add(file); } else if (AskOverwrite(Path.Combine(outputPath, file))) { files.Add(file); } } if (files.Count == 0) { progressLabel.Text = "Compilation aborted."; return; } //Setup compiler IEffectCompiler compiler = CreatePlatformCompiler(platform); compiler.Init(); compileProgressBar.Maximum = count * 2; //Compile each effect. int count2 = 0; Effect[] effects; try { effects = compiler.Compile(files.ToArray(), delegate() { compileProgressBar.PerformStep(); count2++; progressLabel.Text = String.Format("Compiling file %d of %d", count2, count); }); } catch (Exception ce) { compiler.Dispose(); compileProgressBar.Value = 0; progressLabel.Text = "Error compiling files."; MessageBox.Show(ce.Message, "Error", MessageBoxButtons.OK); return; } //Save via the binary exporter. try { BinaryExporter exporter = new BinaryExporter(); count2 = 0; foreach (Effect effect in effects) { FileStream fs = File.Create(Path.Combine(outputPath, effect.Name + ".tebo")); exporter.Save(effect, fs); fs.Flush(); fs.Close(); compileProgressBar.PerformStep(); count2++; progressLabel.Text = String.Format("Saving file %d of %d", count2, count); } } catch (Exception ee) { compiler.Dispose(); compileProgressBar.Value = 0; progressLabel.Text = "Error saving files."; MessageBox.Show(ee.Message, "Error", MessageBoxButtons.OK); return; } //Cleanup compiler.Dispose(); compileProgressBar.Value = 0; progressLabel.Text = "Compilation finished, waiting..."; }