示例#1
0
        // -- 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
        }
示例#2
0
        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();*/
        }
示例#3
0
        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...";
        }