Perfectly overlapping UV islands (result from applied mirror modifier) of exported FBX mesh get broken into individual polygon UV islands when imported into Maya 2018 #57308
Labels
No Label
Interest
Animation & Rigging
Interest
Blender Cloud
Interest
Collada
Interest
Core
Interest
Documentation
Interest
Eevee & Viewport
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
Import and Export
Interest
Modeling
Interest
Modifiers
Interest
Nodes & Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds, Tests & Devices
Interest
Python API
Interest
Rendering & Cycles
Interest
Sculpt, Paint & Texture
Interest
Translations
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Meta
Good First Issue
Meta
Papercut
Module
Add-ons (BF-Blender)
Module
Add-ons (Community)
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender-addons#57308
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Windows 10, NVIDIA Quadro P4000
Blender Version
Broken: official 2.79b (f4dc9f9d68b)
Broken: blender-2.79.0-git.de3f9303eb9-windows64 (de3f9303eb9 - 2018-10-18 18:21) (the latest I could find in builder.blender.org this day)
Short description of error
Mesh in Blender ready to be exported as FBX (unwrapped UVs for one arrow, then Mirror modifier applied):
As a result of the applied Mirror modifier, both arrows have the perfectly ovelapping UVs on top of each other (very commonly used technique in game development to save texture space):
That FBX imported into Maya (thick white lines show the other arrow's UVs broken into several islands of single polygons, in other words, its UV polygons are not attached to each other anymore):
To visualize the issue, here are all the UV islands separated individually with margins in Maya 2018:
Note 1 (Breaks): even that didn't get rid of the issue if I made a new cube, joined the mesh of the 2 arrows to the cube object and then deleted the cube mesh and after that exported the new arrows object as FBX. Same issue continued to happen.
Note 2 (Works, no issue): if I fully separate or even incredibly slightly offset the UV islands in Blender after applying the Mirror modifier and then export that object as FBX, they will appear perfectly as just 2 separate identical UV islands when the FBX is imported to Maya 2018, as is expected to happen in any case - this works as a workaround for now
Note 3 (breaks): in Blender, if I separate one of the UV islands by 1 unit in X-axis and after that move it back -1 unit in X-axis so that they once again align and overlap with each other perfectly, the same issue happens when exported as FBX and imported into Maya 2018.
Exact steps for others to reproduce the error
arrow1.blend
Added subscriber: @ManuJarvinen
Added subscriber: @brecht
I guess when converting the UVs to indexed format it should take into should group by identical (u, v, vertex_index) instead of only (u, v).
@brecht I do not see why it should be that way, indexed format in FBX is precisely here to avoid having to write more that once the same data (set of UV coordinates in that case)… IMHO it’s MAYA which is broken here, not handling properly indexed coordinates (probably assuming indexed coordinates imply 'same' UV or something like that)… Kind of fear the only solution will be to add yet another option to the exporter: Do Not Use Indexed Data…
Not the first time I hit some illogical, incomprehensible limitation of that indexed data support in other FBX importers btw, remember having to limit its usage already in the past. I so much love FBX, the most incompatible format ever (un)defined, even autodesk's own products can’t use it properly. :'(((((((((((((
Not to mention that FBX has no way to convey the concept of UV islands…
The purpose of indexed UVs is not only to avoid the memory duplication, it also defines islands connections.
I don't think there needs to be an option, there is no harm in having the same UV coordinate duplicated when it belongs to a different mesh vertex. It's just a little less memory efficient.
This issue was referenced by
a2e1c4f1d1
Changed status from 'Open' to: 'Resolved'
@brecht applied your suggestion (hopefully it does fix the issue, have no way to test it).
But I still believe that this is once again abusing and twisting the format, those mappings are used for all kind of data types in FBX, so enforcing some custom weird half-broken behavior on a specific type to encode another info is really, really bad practice… Not surprising from that PoS of a format, though, it loves doing that kind of things. :(
This kind of UV indexing is not specific to FBX and quite standard in various 3D apps and renderers. But it's rarely specified well or explained why it matters (e.g. connectivity for smooth UVs for subdivision surfaces).