From b425fd551f03470140c4eb5aa2f7926db8ede984 Mon Sep 17 00:00:00 2001 From: notargs Date: Mon, 13 Sep 2021 17:49:34 +0900 Subject: [PATCH 1/2] =?UTF-8?q?ImporterContext=E3=81=AE=E3=81=86=E3=81=A1?= =?UTF-8?q?=E3=80=81BuildHierarchy=E3=81=BE=E3=82=8F=E3=82=8A=E3=81=AE?= =?UTF-8?q?=E3=83=95=E3=83=AC=E3=83=BC=E3=83=A0=E3=82=92=E5=88=86=E6=95=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/UniGLTF/IO/ImporterContext.cs | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs index 120d04bb2..e8cf333a8 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Collections.Generic; using UnityEngine; using System.Threading.Tasks; +using UnityEngine.Profiling; using VRMShaders; namespace UniGLTF @@ -169,40 +170,65 @@ namespace UniGLTF var inverter = InvertAxis.Create(); var meshImporter = new MeshImporter(); - for (int i = 0; i < GLTF.meshes.Count; ++i) + if (GLTF.meshes.Count > 0) { - var index = i; - using (MeasureTime("ReadMesh")) + for (var i = 0; i < GLTF.meshes.Count; ++i) { - var x = await awaitCaller.Run(() => meshImporter.ReadMesh(GLTF, index, inverter)); - var y = await BuildMeshAsync(awaitCaller, MeasureTime, x, index); - Meshes.Add(y); + var index = i; + using (MeasureTime("ReadMesh")) + { + var x = await awaitCaller.Run(() => meshImporter.ReadMesh(GLTF, index, inverter)); + var y = await BuildMeshAsync(awaitCaller, MeasureTime, x, index); + Meshes.Add(y); + } } + + await awaitCaller.NextFrame(); } - using (MeasureTime("LoadNodes")) + if (GLTF.nodes.Count > 0) { - for (int i = 0; i < GLTF.nodes.Count; i++) + using (MeasureTime("LoadNodes")) { - Nodes.Add(NodeImporter.ImportNode(GLTF.nodes[i], i).transform); + Profiler.BeginSample("ImporterContext.LoadNodes"); + for (var i = 0; i < GLTF.nodes.Count; i++) + { + Nodes.Add(NodeImporter.ImportNode(GLTF.nodes[i], i).transform); + } + Profiler.EndSample(); } + + await awaitCaller.NextFrame(); } - await awaitCaller.NextFrame(); using (MeasureTime("BuildHierarchy")) { var nodes = new List(); - for (int i = 0; i < Nodes.Count; ++i) + if (Nodes.Count > 0) { - nodes.Add(NodeImporter.BuildHierarchy(GLTF, i, Nodes, Meshes)); + Profiler.BeginSample("NodeImporter.BuildHierarchy"); + for (var i = 0; i < Nodes.Count; ++i) + { + nodes.Add(NodeImporter.BuildHierarchy(GLTF, i, Nodes, Meshes)); + } + Profiler.EndSample(); + + await awaitCaller.NextFrame(); } NodeImporter.FixCoordinate(GLTF, nodes, inverter); // skinning - for (int i = 0; i < nodes.Count; ++i) + if (Nodes.Count > 0) { - NodeImporter.SetupSkinning(GLTF, nodes, i, inverter); + Profiler.BeginSample("NodeImporter.SetupSkinning"); + for (var i = 0; i < nodes.Count; ++i) + { + NodeImporter.SetupSkinning(GLTF, nodes, i, inverter); + } + Profiler.EndSample(); + + await awaitCaller.NextFrame(); } if (Root == null) From 06ad6825c20dfe4c6f830ca539ada9d364b8e172 Mon Sep 17 00:00:00 2001 From: notargs Date: Mon, 13 Sep 2021 17:58:51 +0900 Subject: [PATCH 2/2] Nodes -> nodes --- Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs index e8cf333a8..f1600dd7c 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs @@ -219,7 +219,7 @@ namespace UniGLTF NodeImporter.FixCoordinate(GLTF, nodes, inverter); // skinning - if (Nodes.Count > 0) + if (nodes.Count > 0) { Profiler.BeginSample("NodeImporter.SetupSkinning"); for (var i = 0; i < nodes.Count; ++i)