From b0aa6048325a811280b7c3d6e52dfe64bb898d43 Mon Sep 17 00:00:00 2001 From: Colin Basnett Date: Thu, 1 Apr 2021 17:27:17 -0700 Subject: [PATCH] *Actually* fixed the smoothing group problem! --- src/builder.py | 6 ++++-- src/io_scene_ase-main-1.0.1.zip | Bin 0 -> 5027 bytes 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 src/io_scene_ase-main-1.0.1.zip diff --git a/src/builder.py b/src/builder.py index 789c99e..eeb602d 100644 --- a/src/builder.py +++ b/src/builder.py @@ -57,7 +57,7 @@ class ASEBuilder(object): mesh_data.calc_loop_triangles() mesh_data.calc_normals_split() - poly_groups, groups = mesh_data.calc_smooth_groups(use_bitflags=True) + poly_groups, groups = mesh_data.calc_smooth_groups(use_bitflags=False) # Faces for face_index, loop_triangle in enumerate(mesh_data.loop_triangles): @@ -67,7 +67,9 @@ class ASEBuilder(object): face.c = geometry_object.vertex_offset + mesh_data.loops[loop_triangle.loops[2]].vertex_index if not geometry_object.is_collision: face.material_index = material_indices[loop_triangle.material_index] - face.smoothing = poly_groups[loop_triangle.polygon_index] + # The UT2K4 importer only accepts 32 smoothing groups. Anything past this completely mangles the + # smoothing groups and effectively makes the whole model use sharp-edge rendering. + face.smoothing = (poly_groups[loop_triangle.polygon_index] - 1) % 32 geometry_object.faces.append(face) # Normals diff --git a/src/io_scene_ase-main-1.0.1.zip b/src/io_scene_ase-main-1.0.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..8744eec754f315c8b74ed4669ec79354f50d5f67 GIT binary patch literal 5027 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