PLY: Fix export faces with more than 255 sides
Ideally we want to use uint16 or uint32 data type for this purpose, but certain DCCs have hardcoded uint8 limits in their PLY importers. Silently tringulating faces with many sides is bad, but it's even worse when correctly exported model won't load because of poor importer implementation in other DCCs.
This commit is contained in:
parent
1679f2fdbb
commit
5533f703fb
|
@ -244,6 +244,10 @@ def save(
|
|||
bm.from_mesh(me)
|
||||
ob_eval.to_mesh_clear()
|
||||
|
||||
# Workaround for hardcoded unsigned char limit in other DCCs PLY importers
|
||||
if (ngons := [f for f in bm.faces if len(f.verts) > 255]):
|
||||
bmesh.ops.triangulate(bm, faces=ngons)
|
||||
|
||||
mesh = bpy.data.meshes.new("TMP PLY EXPORT")
|
||||
bm.to_mesh(mesh)
|
||||
bm.free()
|
||||
|
|
Loading…
Reference in New Issue