private static void CreateMaterialFile(string folder, string matFilename, Dictionary<string, MyExportModel.Material> materials, List<renderColoredTextureProperties> texturesToRender) { using (StreamWriter writer = new StreamWriter(matFilename)) { for (int i = 0; i < materials.Count; ++i) { MyExportModel.Material mat = materials.ElementAt(i).Value; string materialName = mat.Name; writer.WriteLine(string.Format("newmtl {0}", materialName)); writer.WriteLine("Ka 1.000 1.000 1.000"); writer.WriteLine("Ks 0.000 0.000 0.000"); writer.WriteLine("d 1.0"); writer.WriteLine("Tr 0.0000"); writer.WriteLine("Tf 1.0000 1.0000 1.0000"); writer.WriteLine("illum 2"); if (mat.IsGlass) { foreach (var material in MyDefinitionManager.Static.GetTransparentMaterialDefinitions()) { if(mat.DiffuseTexture.Equals(material.Texture, StringComparison.OrdinalIgnoreCase)) { writer.WriteLine("Kd {0} {1} {2}", material.Color.Y, material.Color.Z, material.Color.W); }; } continue; } renderColoredTextureProperties textureToRenderProperties = new renderColoredTextureProperties(); textureToRenderProperties.ColorMaskHSV = mat.ColorMaskHSV; textureToRenderProperties.TextureName = mat.DiffuseTexture; textureToRenderProperties.PathToSave = Path.Combine(folder, mat.NewDiffuseTexture); texturesToRender.Add(textureToRenderProperties); writer.WriteLine("Kd 1.000 1.000 1.000"); string srcDiffuseTex = mat.NewDiffuseTexture; if (!String.IsNullOrEmpty(srcDiffuseTex)) { writer.WriteLine(string.Format("map_Ka {0}", Path.GetFileName(srcDiffuseTex))); writer.WriteLine(string.Format("map_Kd {0}", Path.GetFileName(srcDiffuseTex))); } if (i < materials.Count - 1) { writer.WriteLine(string.Empty); } } } }
private static void CreateMaterialFile(string folder, string matFilename, Dictionary<string, MyExportModel.Material> materials, List<renderColoredTextureProperties> texturesToRender) { using (StreamWriter writer = new StreamWriter(matFilename)) { for (int i = 0; i < materials.Count; ++i) { MyExportModel.Material mat = materials.ElementAt(i).Value; string materialName = mat.Name; writer.WriteLine(string.Format("newmtl {0}", materialName)); writer.WriteLine("Ka 1.000 1.000 1.000"); writer.WriteLine("Ks 0.000 0.000 0.000"); writer.WriteLine("d 1.0"); writer.WriteLine("Tr 0.0000"); writer.WriteLine("Tf 1.0000 1.0000 1.0000"); writer.WriteLine("illum 2"); if (mat.IsGlass) { continue; } renderColoredTextureProperties textureToRenderProperties = new renderColoredTextureProperties(); textureToRenderProperties.ColorMaskHSV = mat.ColorMaskHSV; textureToRenderProperties.PathToSave = Path.Combine(folder, mat.NewDiffuseTexture); texturesToRender.Add(textureToRenderProperties); writer.WriteLine("Kd 1.000 1.000 1.000"); string srcDiffuseTex = mat.NewDiffuseTexture; if (!String.IsNullOrEmpty(srcDiffuseTex)) { writer.WriteLine(string.Format("map_Ka {0}", Path.GetFileName(srcDiffuseTex))); writer.WriteLine(string.Format("map_Kd {0}", Path.GetFileName(srcDiffuseTex))); } if (i < materials.Count - 1) { writer.WriteLine(string.Empty); } } } }