public static void AddShaderDatums(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) { model_info.AddShaderDatum(definition.Shaders[part.ShaderIndex.Value].Shader.Datum, definition.Shaders[part.ShaderIndex.Value].Shader.ToString()); } } }
public static int GetTriangleCount(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; int triangle_count = 0; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) { triangle_count += part.Triangles.Count; } } return(triangle_count); }
public static int GetVertexCount(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; int vertex_count = 0; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) { vertex_count += part.UncompressedVertices.Count; } } return(vertex_count); }
void ExportModel(string file_name) { ModelInfoInternal model_info = new ModelInfoInternal(); List <int> added_permutations = new List <int>(); // create an info object with all of the registered infos combined foreach (int index in registeredInfos) { ModelInfoInternal info = internalInfoList[index] as ModelInfoInternal; 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 Halo1.ColladaModelExporter(arguments, model_info, tagIndex, tagManager); ExportSave(exporter, RelativeFilePath + file_name + ".dae"); }
public static int GetTriangleCount(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; int triangle_count = 0; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) triangle_count += part.Triangles.Count; } return triangle_count; }
public static int GetVertexCount(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; int vertex_count = 0; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) vertex_count += part.UncompressedVertices.Count; } return vertex_count; }
public static void AddShaderDatums(ModelInfoInternal model_info, TagManager manager) { var definition = manager.TagDefinition as Blam.Halo1.Tags.gbxmodel_group; for (int i = 0; i < model_info.GetGeometryCount(); i++) { foreach (var part in definition.Geometries[model_info.GetGeometryIndex(i)].Parts) model_info.AddShaderDatum(definition.Shaders[part.ShaderIndex.Value].Shader.Datum, definition.Shaders[part.ShaderIndex.Value].Shader.ToString()); } }