FBX export and import produce incompatible texture mapping type #100391
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#100391
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Simplified Report
If one FBX exports an object with a material containing a single texture scaled by a factor of 2, the FBX file will be exported with the texture inverse scale of 1 /2 = 0.5.
If that same FBX is imported back into Blender, it will be imported with the original scale by taking the inverse 1 / 0.5 = 2. However, the texture mapping node will be set to "Texture", and not the standard "Point" texture mapping model. Consequently, taking the inverse in this case is redundant, or the other way around, that is, setting the texture mapping node to "Texture" is redundant.
Furthermore, the user reporter suggests that inverse scaling is not standard in all software, so ideally, there would be an option to export as inversed or not.
Original Report
By default FBX Exporter in Blender inverses UV scaling which can cause errors in some other 3d software.
I guess inverting scaling means that exporter assumes that 3d software that would use that fbx has uv scaling opposite to Blender one but it's not true (Blender uses Point type mapping and other type that is used for fbx is Texture mapping).
For example, 3ds max UV scaling works the same way as in Blender - it uses Point type scaling, meaning increasing scales -> zooming texture out (which is different from for example Houdini where increased scales means zooming in).
Other problem is that after exporting fbx back to blender scaling are inverted back again and in shader graph mapping node has type = Texture. Meaning scale on material is kind of inversed twice meaning it now has incorrect values.
It would be more reasonable to set it's mapping type on node to Point because 1) Blender uses it as default; 2) Blender inverses input fbx texture tiling - so it's kind of converted to "Point" tiling already.
Scales in Blender (you can inverse scales by using Texture mapping instead of Point):
Resulting scales in FBX
Texture mapping type after FBX remport:
Suggestions to solve the problem:
Added subscriber: @Andrej-4
Changed status from 'Needs Triage' to: 'Confirmed'
FBX Export/Import - no option not to inverse UV scaling causes errorsto FBX export and import produce incompatible texture mapping scaleFBX export and import produce incompatible texture mapping scaleto FBX export and import produce incompatible texture mapping typeAdded subscriber: @mont29
Talked to Brecht about this... FBX has no clear specs about what is expected here, however since that scale factor is stored in texture data there, I think we can assume it to be the equivalent of the 'Texture' option in Blender's mapping node (aka scaling the image, and not the texture coordinates).
So think what we should do is:
Texture
orPoint
mode is used, if the later is, invert the scaling values. (Currently there is no such check, and scaling values are always inverted.)Does that makes sense to you guys?
Changed status from 'Confirmed' to: 'Needs User Info'
This comment was removed by @mont29
Sounds good for the most cases but the little flaw is that there will be no option to export/import Point mode scales in fbx (which is used in 3ds max for example).
The solution would be to add an option on import/export wheither to use Point mode UV scales or not and set it false as default since most editors with fbx seems to use Texture mode.
Changed status from 'Needs User Info' to: 'Needs Triage'
Added subscriber: @OmarEmaraDev
Changed status from 'Needs Triage' to: 'Confirmed'
It seems this was mistaken with another report and its status was changed from confirmed, so changing back.