From 93e404042691b6ff878b13ba4afba0fd8b71a500 Mon Sep 17 00:00:00 2001 From: scut Date: Fri, 10 Nov 2023 21:35:48 -0500 Subject: [PATCH 1/5] sorted materials for a static mesh by material slot --- fast64_internal/f3d/f3d_writer.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fast64_internal/f3d/f3d_writer.py b/fast64_internal/f3d/f3d_writer.py index 00ad17f5d..4030182ce 100644 --- a/fast64_internal/f3d/f3d_writer.py +++ b/fast64_internal/f3d/f3d_writer.py @@ -335,14 +335,17 @@ def saveStaticModel( # checkForF3DMaterial(obj) - facesByMat = {} + faces_by_mat = {} for face in obj.data.loop_triangles: - if face.material_index not in facesByMat: - facesByMat[face.material_index] = [] - facesByMat[face.material_index].append(face) - + if face.material_index not in faces_by_mat: + faces_by_mat[face.material_index] = [] + faces_by_mat[face.material_index].append(face) + + # sort by material slot + faces_by_mat = {mat_index:faces_by_mat[mat_index] for mat_index, _ in enumerate(obj.material_slots)} + fMeshes = {} - for material_index, faces in facesByMat.items(): + for material_index, faces in faces_by_mat.items(): material = obj.material_slots[material_index].material if drawLayerField is not None and material.mat_ver > 3: From 13da828933fffde039b25ba63e0df7fd90be10f0 Mon Sep 17 00:00:00 2001 From: scut Date: Mon, 8 Jan 2024 20:20:13 -0500 Subject: [PATCH 2/5] black format --- fast64_internal/f3d/f3d_writer.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/fast64_internal/f3d/f3d_writer.py b/fast64_internal/f3d/f3d_writer.py index d1f09fb16..1dba1df6e 100644 --- a/fast64_internal/f3d/f3d_writer.py +++ b/fast64_internal/f3d/f3d_writer.py @@ -339,10 +339,10 @@ def saveStaticModel( if face.material_index not in faces_by_mat: faces_by_mat[face.material_index] = [] faces_by_mat[face.material_index].append(face) - + # sort by material slot - faces_by_mat = {mat_index:faces_by_mat[mat_index] for mat_index, _ in enumerate(obj.material_slots)} - + faces_by_mat = {mat_index: faces_by_mat[mat_index] for mat_index, _ in enumerate(obj.material_slots)} + fMeshes = {} for material_index, faces in faces_by_mat.items(): material = obj.material_slots[material_index].material @@ -410,13 +410,7 @@ def addCullCommand(obj, fMesh, transformMatrix, matWriteMethod): # if the object has a specifically set culling bounds, use that instead for vertexPos in obj.get("culling_bounds", obj.bound_box): fMesh.cullVertexList.vertices.append( - F3DVert( - Vector(vertexPos), - [0, 0], - Vector([0, 0, 0]), - None, - 0.0, - ).toVtx( + F3DVert(Vector(vertexPos), [0, 0], Vector([0, 0, 0]), None, 0.0,).toVtx( obj.data, [32, 32], transformMatrix, From 8301a2384bef7e6dd5d6807a4bf0be6de8906185 Mon Sep 17 00:00:00 2001 From: scut Date: Sun, 21 Jan 2024 16:04:32 -0500 Subject: [PATCH 3/5] black format on debian, thank you based windows for not working even when changing git config --- fast64_internal/f3d/f3d_writer.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fast64_internal/f3d/f3d_writer.py b/fast64_internal/f3d/f3d_writer.py index 1dba1df6e..83a195962 100644 --- a/fast64_internal/f3d/f3d_writer.py +++ b/fast64_internal/f3d/f3d_writer.py @@ -410,7 +410,13 @@ def addCullCommand(obj, fMesh, transformMatrix, matWriteMethod): # if the object has a specifically set culling bounds, use that instead for vertexPos in obj.get("culling_bounds", obj.bound_box): fMesh.cullVertexList.vertices.append( - F3DVert(Vector(vertexPos), [0, 0], Vector([0, 0, 0]), None, 0.0,).toVtx( + F3DVert( + Vector(vertexPos), + [0, 0], + Vector([0, 0, 0]), + None, + 0.0, + ).toVtx( obj.data, [32, 32], transformMatrix, From eff2838ebb4e371c36d043cfbc9fe0b1e46c120e Mon Sep 17 00:00:00 2001 From: Scut Date: Wed, 24 Jan 2024 19:53:12 -0500 Subject: [PATCH 4/5] Update fast64_internal/f3d/f3d_writer.py dragon suggestion Co-authored-by: Dragorn421 --- fast64_internal/f3d/f3d_writer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fast64_internal/f3d/f3d_writer.py b/fast64_internal/f3d/f3d_writer.py index 83a195962..2bbf26811 100644 --- a/fast64_internal/f3d/f3d_writer.py +++ b/fast64_internal/f3d/f3d_writer.py @@ -341,7 +341,7 @@ def saveStaticModel( faces_by_mat[face.material_index].append(face) # sort by material slot - faces_by_mat = {mat_index: faces_by_mat[mat_index] for mat_index, _ in enumerate(obj.material_slots)} + faces_by_mat = {mat_index: faces_by_mat[mat_index] for mat_index, _ in enumerate(obj.material_slots) if mat_index in faces_by_mat} fMeshes = {} for material_index, faces in faces_by_mat.items(): From 9eb03ab6b703495217fcaf793813ff9b54780cfd Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Thu, 25 Jan 2024 02:25:21 +0100 Subject: [PATCH 5/5] black --- fast64_internal/f3d/f3d_writer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fast64_internal/f3d/f3d_writer.py b/fast64_internal/f3d/f3d_writer.py index 2bbf26811..a0edcd0bf 100644 --- a/fast64_internal/f3d/f3d_writer.py +++ b/fast64_internal/f3d/f3d_writer.py @@ -341,7 +341,11 @@ def saveStaticModel( faces_by_mat[face.material_index].append(face) # sort by material slot - faces_by_mat = {mat_index: faces_by_mat[mat_index] for mat_index, _ in enumerate(obj.material_slots) if mat_index in faces_by_mat} + faces_by_mat = { + mat_index: faces_by_mat[mat_index] + for mat_index, _ in enumerate(obj.material_slots) + if mat_index in faces_by_mat + } fMeshes = {} for material_index, faces in faces_by_mat.items():