Should FBX exporter exports the base color when there is a texture embedded, or instead always export a white base color? #101198
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
5 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender-addons#101198
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?
System Information
Operating system: Debian 11
Graphics card: Nvidia GTX 1080
Blender Version
Broken: 3.3.0
Short description of error
Exporting an FBX file that has a texture connected to the Base Color node results in Blender also exporting the Base Color value that is “under” the texture.
This can result in some hard to debug issues in other applications, since many mix the Base Color and the Base Color texture.
Exact steps for others to reproduce the error
Comparision
The first cube uses the default Blender material settings.
The second cube just has a grey texture applied.
The third cube has the base color changed to almost fully black before getting the grey texture added.
The fourth cube has its base color changed to fully white before getting the grey texture added.
Blender:
Autodesk FBX Review:
Overte:
Godot:
Here is the file used for comparision: blender_FBX_base_color_export.fbx
And the Blend file it is created from: blender_FBX_base_color_export.blend
Added subscriber: @MotoFckr9k
Added subscriber: @PratikPB2123
Added subscriber: @OmarEmaraDev
Can you elaborate on this? Which software does that and how does it do the mixing?
Changed status from 'Needs Triage' to: 'Needs User Info'
I cannot elaborate much on it.
It happens in Overte and I don't think the mixing is even working properly in there. The result is too dark.
Regardless of what software is supposed to do with this Base Color value though, Blender doesn't show the user this value when you add a Base Color texture.
I don't know how this case is supposed to be handled in FBX since there doesn't appear to be any proper spec on it, but at the very least Blender shouldn't export a Base Color that is invisible to the user.
The last time this was brought up in blender/blender#72983, it wasn't considered a bug, and since you can't elaborate further except for Overte, I doubt this will change.
If you have any more information regarding this with respect to the FBX spec or a servey of different software behavior, feel free to bring that up and this will be looked into. But otherwise, I will merge to blender/blender#72983 for now.
Closed as duplicate of blender/blender#72983
I took a look at Autodesks FBX Review tool and it actually does the same mixing that Overte does.
Here is a comparision:
The first cube uses the default Blender material settings.
The second cube just has a grey texture applied.
The third cube has the base color changed to almost fully black before getting the grey texture added.
The fourth cube has its base color changed to fully white before getting the grey texture added.
Blender:
Autodesk FBX Review:
Overte:
Godot:
Changed status from 'Duplicate' to: 'Confirmed'
Thanks for the extra information. Looks like this need to be considered indeed. So I will confirm. Can you update the original report with the information in your last comment.
Added subscriber: @mont29
That sounds like yet another undocumented, unexpected behavior of FBX... I do not see any reason to implicitly mix base color with texture, the later should just take over (unless it has some level of alpha maybe)... We could force base color to white when there is a texture I guess, but then it means you lose even more data in the round trip (export and re-import in Blender)...
In any case, this is not a bug, at best a design issue. If majority of userbase of FBX IO agrees that white base color when there is a texture is the desired behavior, we can change it.
FBX exporter exports a base color even when there is a texture embeddedto Should FBX exporter exports the base color when there is a texture embedded, or instead always export a white base color?I would certainly like it just exporting white as the base colour in this scenario.
I feel like the round trip of Blender to FBX to Blender is generally less important than Blender to FBX, but in this case we are even talking about a value that is unused and not visible in Blender unless you get rid of the texture.
Also just for reference, there is a slight reason to mix base colour and base texture. It can be used to save on filesize by mixing a greyscale texture with the base colour. That way you can use the same texture for multiple different coloured materials.
We actually sometimes do something similar in Overte, where we use a greyscale texture and vertex colours to save on file size.
The 3ds format got same problem, textures are imported with a percentage value and will be mixed with the base color. I updated the scripts for importing and exporting 3ds in Blender 3.x The base color will be imported to a mix shader and will be mixed with the texture percentage. Those color values will also be exported again together with texture and percentage. If no mixshader is connected, the base color will be taken though
Here is a screenshot of what you will get by importing a 3ds to blender:
Maybe this solution will also work for fbx since those file formats have a lot similarities