FBX Importer/Exporter: Edge creases missing when re-importing some exported meshes #103949

Closed
opened 2023-01-17 22:48:48 +01:00 by Mysteryem · 8 comments

System Information
Operating system: Windows-10-10.0.19045-SP0 64 Bits
Graphics card: NVIDIA GeForce GTX 1070 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 516.94

Blender Version
Broken: version: 3.4.1, branch: blender-v3.4-release, commit date: 2022-12-19 17:00, hash: blender/blender@55485cb379
Worked:

Short description of error
Exporting a mesh with a Subdivision Surface modifier set to Catmull-Clark and with Use Creases enabled with the Geometry>Export Subdivision Surface option of the exporter enabled will export edge creases. However, with some meshes, when attempting to import the exported fbx:
In Blender 3.4.1, all the edge creases will be missing.
In Blender 2.93.9 - 3.3.3, one edge crease will be missing.

I don't know what the conditions are for this to happen, but it seems to happen most often when the exported mesh is non-manifold.
Exporting a cube works without issue,
Exporting a cube with one face removed works without issue,
But exporting a cube with one face rotated up like the lid of a box does not work.

Exact steps for others to reproduce the error

  • ??? Don't know what conditions are required to create a mesh that has this issue
  • Set the crease of every edge to 1.0 or another non-zero value
  • Add a Subdivision Surface modifier (the type must be set to Catmull-Clark and Use Creases must be enabled otherwise edge creases won't be exported)
  • Export the mesh with the Geometry>Export Subdivision Surface option of the FBX exporter enabled

Import the exported .fbx with the default settings (enabling the Subdivision Data option is recommended to see the effect of the creases more easily, but is not required) to compare

Attached are a couple of .blend files (authored in 3.4.1) that have this issue when exported, and the .fbx files exported from them. The images shown after each .fbx file are the .fbx imported into Blender 2.93.9 and Blender 3.4.1.
{F14160138}{F14162427}{F14160207}{F14160197}image.png
{F14163412}{F14163416}{F14163435}{F14163643}image.png

**System Information** Operating system: Windows-10-10.0.19045-SP0 64 Bits Graphics card: NVIDIA GeForce GTX 1070 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 516.94 **Blender Version** Broken: version: 3.4.1, branch: blender-v3.4-release, commit date: 2022-12-19 17:00, hash: `blender/blender@55485cb379` Worked: **Short description of error** Exporting a mesh with a Subdivision Surface modifier set to Catmull-Clark and with Use Creases enabled with the Geometry>Export Subdivision Surface option of the exporter enabled will export edge creases. However, with some meshes, when attempting to import the exported fbx: In Blender 3.4.1, all the edge creases will be missing. In Blender 2.93.9 - 3.3.3, one edge crease will be missing. I don't know what the conditions are for this to happen, but it seems to happen most often when the exported mesh is non-manifold. Exporting a cube works without issue, Exporting a cube with one face removed works without issue, But exporting a cube with one face rotated up like the lid of a box does not work. **Exact steps for others to reproduce the error** - ??? Don't know what conditions are required to create a mesh that has this issue - Set the crease of every edge to 1.0 or another non-zero value - Add a Subdivision Surface modifier (the type must be set to Catmull-Clark and Use Creases must be enabled otherwise edge creases won't be exported) - Export the mesh with the Geometry>Export Subdivision Surface option of the FBX exporter enabled # Import the exported .fbx with the default settings (enabling the Subdivision Data option is recommended to see the effect of the creases more easily, but is not required) to compare Attached are a couple of .blend files (authored in 3.4.1) that have this issue when exported, and the .fbx files exported from them. The images shown after each .fbx file are the .fbx imported into Blender 2.93.9 and Blender 3.4.1. {[F14160138](https://archive.blender.org/developer/F14160138/FBXEdgeCreasesTest.blend)}{[F14162427](https://archive.blender.org/developer/F14162427/image.png)}{[F14160207](https://archive.blender.org/developer/F14160207/FBXEdgeCreasesTest.fbx)}{[F14160197](https://archive.blender.org/developer/F14160197/image.png)}![image.png](https://archive.blender.org/developer/F14162477/image.png) {[F14163412](https://archive.blender.org/developer/F14163412/FBXEdgeCreasesTest_box.blend)}{[F14163416](https://archive.blender.org/developer/F14163416/image.png)}{[F14163435](https://archive.blender.org/developer/F14163435/FBXEdgeCreasesTest_box.fbx)}{[F14163643](https://archive.blender.org/developer/F14163643/image.png)}![image.png](https://archive.blender.org/developer/F14163648/image.png)
Author

Added subscriber: @Mysteryem-2

Added subscriber: @Mysteryem-2

Added subscriber: @mano-wii

Added subscriber: @mano-wii

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'

I can confirm that Edge Crease was partially supported in 3.3 and is now completely ignored by the FBX importer.

The problem was introduced in 3.4 between blender/blender@f0a3659900 (Sep 5) and blender/blender@1017b493ed (Nov 30)

I can confirm that `Edge Crease` was partially supported in 3.3 and is now completely ignored by the FBX importer. The problem was introduced in 3.4 between `blender/blender@f0a3659900` (Sep 5) and `blender/blender@1017b493ed` (Nov 30)
Author

In #103949#1476164, @mano-wii wrote:
I can confirm that Edge Crease was partially supported in 3.3 and is now completely ignored by the FBX importer.

Um, that makes it sound like Edge Crease isn't working at all, whereas it works fine for some exported meshes, such as the default cube:
FBXEdgeCreasesTest_cube.blend
image.png
FBXEdgeCreasesTest_cube.fbx
image.png
If it's useful, here is that first FBXEdgeCreasesTest.blend, but exported using a partial rewrite of the exporter I've been working on, it imports with all creases in both 3.3.3 and 3.4.1. ~~I have tried putting both FBXEdgeCreasesTest.fbx and FBXEdgeCreasesTest_new_working.fbx through the fbx2json.py utility in the io_scene_fbx addon's directory, but they appear identical aside from timestamps, unique ids and some differences in the precision error of the creases.
~~ Edit: I loaded the wrong file for comparison and can see where the issue is now, the last edge is not getting exported.
FBXEdgeCreasesTest_new_working.fbx

> In #103949#1476164, @mano-wii wrote: > I can confirm that `Edge Crease` was partially supported in 3.3 and is now completely ignored by the FBX importer. Um, that makes it sound like `Edge Crease` isn't working at all, whereas it works fine for some exported meshes, such as the default cube: [FBXEdgeCreasesTest_cube.blend](https://archive.blender.org/developer/F14172157/FBXEdgeCreasesTest_cube.blend) ![image.png](https://archive.blender.org/developer/F14172153/image.png) [FBXEdgeCreasesTest_cube.fbx](https://archive.blender.org/developer/F14172158/FBXEdgeCreasesTest_cube.fbx) ![image.png](https://archive.blender.org/developer/F14172160/image.png) If it's useful, here is that first `FBXEdgeCreasesTest.blend`, but exported using a partial rewrite of the exporter I've been working on, it imports with all creases in both 3.3.3 and 3.4.1. ~~I have tried putting both `FBXEdgeCreasesTest.fbx` and `FBXEdgeCreasesTest_new_working.fbx` through the `fbx2json.py` utility in the `io_scene_fbx` addon's directory, but they appear identical aside from timestamps, unique ids and some differences in the precision error of the creases. ~~ Edit: I loaded the wrong file for comparison and can see where the issue is now, the last edge is not getting exported. [FBXEdgeCreasesTest_new_working.fbx](https://archive.blender.org/developer/F14172172/FBXEdgeCreasesTest_new_working.fbx)

This issue was referenced by bb45dff65a

This issue was referenced by bb45dff65ac61153ecce2ce3a461a8fb2526b2f0

This issue was referenced by a8ffea50ed

This issue was referenced by a8ffea50ed75e3490a99c79007ae21f9b7932595

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Bastien Montagne self-assigned this 2023-01-23 15:52:26 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#103949
No description provided.