If an application has invariants on the index values within a face to not be duplicates, what should that implementation do when encountering such values? The vast majority of assets we’ve seen are “ok” but every so often we encounter a mesh where a few faces, out of many thousands, are like this.
Note: that this is slightly different than a “more valid” situation where there’s an actual duplicate vertex. E.g. if there’s an index “2” who’s vertex position is exactly the same as another vertex’s position. That case is fine.
Aye, yes, basically the same issue. In our case, we are a bit worse than your bug there. A prototype fix on our side, to prevent the recently discovered asserts, could auto-fix the geometry before loading in the UVs. But that auto-fix will render all downstream indices broken; ergo the normals and UVs won’t be loaded at all since their sizes won’t match. We load positions, faces/edges, normals, and then attributes (which includes the UVs), in that order, and the problem is detected at the face/edge stage.
This is a tough issue. I know that the industry’s mantra is “the show must go on”, “at any cost”, but that might mean defining what happens with such topology. If Maya is going to entertain a fix to that bug, other DCCs might have to as well. That will not come for free in development or runtime costs.