From 0ad769e08e5c3b92249ff7bc1f3ac65878e73449 Mon Sep 17 00:00:00 2001 From: AeAstralis Date: Wed, 20 Mar 2024 22:33:35 -0400 Subject: [PATCH] Add tri count per LoD to models tab Adds the tri count of each LoD on the selected model to the Models tab under Advanced Editing. --- .../UI/AdvancedWindow/ModEditWindow.Models.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.cs b/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.cs index 67ec97f2..494ad3f6 100644 --- a/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.cs +++ b/Penumbra/UI/AdvancedWindow/ModEditWindow.Models.cs @@ -508,6 +508,11 @@ public partial class ModEditWindow ImGuiUtil.DrawTableColumn(file.VertexDeclarations.Length.ToString()); ImGuiUtil.DrawTableColumn("Stack Size"); ImGuiUtil.DrawTableColumn(file.StackSize.ToString()); + for (var lod = 0; lod < file.Lods.Length; lod++) + { + ImGuiUtil.DrawTableColumn("LoD " + lod + " Triangle Count"); + ImGuiUtil.DrawTableColumn(GetTriangleCountForLod(file, lod).ToString()); + } } } @@ -555,6 +560,18 @@ public partial class ModEditWindow return file != null; } + private static long GetTriangleCountForLod(MdlFile model, int lod) + { + var vertSum = 0u; + var meshIndex = model.Lods[lod].MeshIndex; + var meshCount = model.Lods[lod].MeshCount; + + for (var i = meshIndex; i < meshIndex + meshCount; i++) + vertSum += model.Meshes[i].IndexCount; + + return vertSum / 3; + } + private static readonly string[] ValidModelExtensions = [ ".gltf",