void ExportRenderModel(string file_name) { RenderModelInfoInternal model_info = new RenderModelInfoInternal(); List <int> added_permutations = new List <int>(); foreach (int index in registeredInfos) { RenderModelInfoInternal info = internalInfoList[index] as RenderModelInfoInternal; if (!added_permutations.Contains(info.Permutation)) { added_permutations.Add(info.Permutation); } for (int i = 0; i < info.GetShaderCount(); i++) { model_info.AddShaderDatum(info.GetShaderDatum(i), info.GetShaderName(i)); } for (int i = 0; i < info.GetGeometryCount(); i++) { model_info.AddGeometry(info.GetGeometryName(i), info.GetGeometryIndex(i)); } } if (added_permutations.Count == 1) { model_info.Permutation = added_permutations[0]; } else { model_info.IsMultiplePermutations = true; } ColladaExportArgs arguments = new ColladaExportArgs(Overwrite, RelativeFilePath, BitmapFormat); var exporter = new Halo2.ColladaRenderModelExporter(arguments, model_info, tagIndex, tagManager); ExportSave(exporter, RelativeFilePath + file_name + ".dae"); }
public static void AddGeometryInfos(RenderModelInfoInternal model_info, TagManager manager, int permutation, int lod) { var definition = manager.TagDefinition as Blam.Halo2.Tags.render_model_group; for (int i = 0; i < definition.Regions.Count; i++) { var region = definition.Regions[i]; int permutation_index = permutation; if (permutation >= region.Permutations.Count) { permutation_index = 0; } string name = string.Format("{0}-{1}-lod{2}", definition.Regions[i].Name.ToString(), region.Permutations[permutation_index].Name.ToString(), lod); int index = 0; switch (lod) { case 0: index = region.Permutations[permutation_index].L6; break; case 1: index = region.Permutations[permutation_index].L5; break; case 2: index = region.Permutations[permutation_index].L4; break; case 3: index = region.Permutations[permutation_index].L3; break; case 4: index = region.Permutations[permutation_index].L2; break; case 5: index = region.Permutations[permutation_index].L1; break; } ; model_info.AddGeometry(name, index); } }
void ExportRenderModel(string file_name) { RenderModelInfoInternal model_info = new RenderModelInfoInternal(); List<int> added_permutations = new List<int>(); foreach (int index in registeredInfos) { RenderModelInfoInternal info = internalInfoList[index] as RenderModelInfoInternal; if (!added_permutations.Contains(info.Permutation)) added_permutations.Add(info.Permutation); for (int i = 0; i < info.GetShaderCount(); i++) model_info.AddShaderDatum(info.GetShaderDatum(i), info.GetShaderName(i)); for (int i = 0; i < info.GetGeometryCount(); i++) model_info.AddGeometry(info.GetGeometryName(i), info.GetGeometryIndex(i)); } if (added_permutations.Count == 1) model_info.Permutation = added_permutations[0]; else model_info.IsMultiplePermutations = true; ColladaExportArgs arguments = new ColladaExportArgs(Overwrite, RelativeFilePath, BitmapFormat); var exporter = new Halo2.ColladaRenderModelExporter(arguments, model_info, tagIndex, tagManager); ExportSave(exporter, RelativeFilePath + file_name + ".dae"); }
public static void AddGeometryInfos(RenderModelInfoInternal model_info, TagManager manager, int permutation, int lod) { var definition = manager.TagDefinition as Blam.Halo2.Tags.render_model_group; for (int i = 0; i < definition.Regions.Count; i++ ) { var region = definition.Regions[i]; int permutation_index = permutation; if (permutation >= region.Permutations.Count) permutation_index = 0; string name = string.Format("{0}-{1}-lod{2}", definition.Regions[i].Name.ToString(), region.Permutations[permutation_index].Name.ToString(), lod); int index = 0; switch (lod) { case 0: index = region.Permutations[permutation_index].L6; break; case 1: index = region.Permutations[permutation_index].L5; break; case 2: index = region.Permutations[permutation_index].L4; break; case 3: index = region.Permutations[permutation_index].L3; break; case 4: index = region.Permutations[permutation_index].L2; break; case 5: index = region.Permutations[permutation_index].L1; break; }; model_info.AddGeometry(name, index); } }