From 66ad6b372e920faf6245ddd14aaddc4feb02421b Mon Sep 17 00:00:00 2001 From: ousttrue Date: Tue, 7 Jun 2022 16:38:09 +0900 Subject: [PATCH] =?UTF-8?q?BuildMesh=20=E9=96=A2=E6=95=B0=E5=B1=95?= =?UTF-8?q?=E9=96=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/UniGLTF/IO/MeshIO/MeshContext.cs | 53 ++++++++----------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshContext.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshContext.cs index a9271c5ec..f9451a115 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshContext.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshContext.cs @@ -583,30 +583,6 @@ namespace UniGLTF Profiler.EndSample(); } - private (Mesh, bool) BuildMesh() - { - AddDefaultMaterial(); - - //Debug.Log(prims.ToJson()); - var mesh = new Mesh - { - name = Name - }; - - UploadMeshVertices(mesh); - UploadMeshIndices(mesh); - - // NOTE: mesh.vertices では自動的に行われていたが、SetVertexBuffer では行われないため、明示的に呼び出す. - mesh.RecalculateBounds(); - - if (!HasNormal) - { - mesh.RecalculateNormals(); - } - - return (mesh, true); - } - private static async Task BuildBlendShapeAsync(IAwaitCaller awaitCaller, Mesh mesh, BlendShape blendShape, Vector3[] emptyVertices) { @@ -658,15 +634,30 @@ namespace UniGLTF Func ctx) { Profiler.BeginSample("MeshImporter.BuildMesh"); - var (mesh, recalculateTangents) = BuildMesh(); + AddDefaultMaterial(); + + //Debug.Log(prims.ToJson()); + var mesh = new Mesh + { + name = Name + }; + + UploadMeshVertices(mesh); + UploadMeshIndices(mesh); + + // NOTE: mesh.vertices では自動的に行われていたが、SetVertexBuffer では行われないため、明示的に呼び出す. + mesh.RecalculateBounds(); + + if (!HasNormal) + { + mesh.RecalculateNormals(); + } Profiler.EndSample(); - if (recalculateTangents) - { - await awaitCaller.NextFrame(); - mesh.RecalculateTangents(); - await awaitCaller.NextFrame(); - } + // RecalculateTangents + await awaitCaller.NextFrame(); + mesh.RecalculateTangents(); + await awaitCaller.NextFrame(); // 先にすべてのマテリアルを作成済みなのでテクスチャーは生成済み。Resultを使ってよい var result = new MeshWithMaterials