public void TestSave() { var materialAsset = AssetSerializer.Load <MaterialAsset>("materials/testMaterial.pdxmat"); var materialReducer = new MaterialTreeReducer(materialAsset.Material); materialReducer.ReduceTrees(); var reducedTrees = materialReducer.ReducedTrees; foreach (var reducedTree in reducedTrees) { materialAsset.Material.AddNode(reducedTree.Key + "_reduced", reducedTree.Value); } var model = new MaterialDescription(); model.SetParameter(MaterialParameters.UseTransparent, true); model.SetParameter(MaterialParameters.ShadingModel, MaterialShadingModel.Phong); model.SetParameter(MaterialParameters.DiffuseModel, MaterialDiffuseModel.Lambert); model.SetParameter(MaterialParameters.SpecularModel, MaterialSpecularModel.BlinnPhong); model.SetParameter(MaterialKeys.DiffuseColorValue, new Color4(1.0f, 1.0f, 0.5f, 0.5f)); model.SetParameter(MaterialKeys.SpecularColorValue, new Color4(0.4f, 0.1f, 1.0f, 1.0f)); model.SetParameter(MaterialKeys.SpecularIntensity, 1.1f); model.SetParameter(MaterialKeys.SpecularPower, 10.1f); var defaultModel = materialAsset.Material; foreach (var treeName in defaultModel.ColorNodes) { model.ColorNodes.Add(treeName.Key, treeName.Value + "_reduced"); } var matAsset2 = new MaterialAsset { Material = model }; AssetSerializer.Save("testMaterial2.pdxmat", matAsset2); var savedAsset = AssetSerializer.Load <MaterialAsset>("testMaterial2.pdxmat"); var loadedMaterial = savedAsset.Material; Assert.AreEqual(true, loadedMaterial.GetParameter(MaterialParameters.UseTransparent)); Assert.AreEqual(MaterialShadingModel.Phong, loadedMaterial.GetParameter(MaterialParameters.ShadingModel)); Assert.AreEqual(MaterialDiffuseModel.Lambert, loadedMaterial.GetParameter(MaterialParameters.DiffuseModel)); Assert.AreEqual(MaterialSpecularModel.BlinnPhong, loadedMaterial.GetParameter(MaterialParameters.SpecularModel)); Assert.AreEqual(new Color4(1.0f, 1.0f, 0.5f, 0.5f), loadedMaterial.GetParameter(MaterialKeys.DiffuseColorValue)); Assert.AreEqual(new Color4(0.4f, 0.1f, 1.0f, 1.0f), loadedMaterial.GetParameter(MaterialKeys.SpecularColorValue)); Assert.AreEqual(1.1f, loadedMaterial.GetParameter(MaterialKeys.SpecularIntensity)); Assert.AreEqual(10.1f, loadedMaterial.GetParameter(MaterialKeys.SpecularPower)); }