0
$\begingroup$

I have a model created in Blender that, when imported into Unity, produces the error upload_2024-7-7_21-20-21.png

"ImportFBX Errors: The mesh Base has invalid normals. Try cleaning and triangulating Base in your 3D modeller before importing it in unity. This is a failure in the fbx exporter of the tool which exported the fbx file.The mesh Spicket has invalid normals. Try cleaning and triangulating Spicket in your 3D modeller before importing it in unity. This is a failure in the fbx exporter of the tool which exported the fbx file.The mesh SpicketConnector has invalid normals. Try cleaning and triangulating SpicketConnector in your 3D modeller before importing it in unity. This is a failure in the fbx exporter of the tool which exported the fbx file.The mesh Spicket_Toggle has invalid normals. Try cleaning and triangulating Spicket_Toggle in your 3D modeller before importing it in unity. This is a failure in the fbx exporter of the tool which exported the fbx file." ​ I figured this was an issue in the default '.Blend' import (I use it as it is wildly convenient but I often hear that I likely shouldn't and should rather export an FBX to be used in Unity), so I exported an FBX of the model -- same issue; same error.

I even took a dead-simple, single component out of the model and placed it in a separate Blender file and both the .Blend as well as the exported FBX still fail.

I finally discovered the issue only occurs when I apply 'Shade Smooth' on any component of the model. upload_2024-7-7_21-24-5.png

If I apply 'Shade Flat' (or even shade smooth by angle) on all components, the model imports fine -- but one component with 'Shade Smooth" applied and I receive the error.

I can also get the error to go away by telling Unity to recalculate the Normals on import. upload_2024-7-7_21-27-57.png

The model imports/exports fine into/out of Blender, Shade Smooth/Flat works fine in Blender. The model imports into Unity with the attached error, but Unity appears to be able to recalculate the normals fine?

Can someone look at these blend/fbx files and possible help me understand what is breaking the import (or give me some steps to try to troubleshoot myself?

I posted this same question in Unity's forum, but I believe Blender is likely where the change will need to occur. https://forum.unity.com/threads/shade-smooth-in-blender-breaks-unity-import-of-fbx.1610463/

UPDATE I found that marking any edge in each model component as 'Sharp' resolves the error. Marking as seam made no difference; specifically marking any edge as 'sharp' fixes whatever the issue is with importing the 'shade smooth' applied model.

$\endgroup$
5
  • 1
    $\begingroup$ Does Unity use the Shade Smooth option from Blender at all? If not, why even bother? Just leave everything shaded flat and smooth it in Unity. $\endgroup$ Commented Jul 8 at 4:20
  • $\begingroup$ Have you tried fiddling with the settings in the Blender FBX export, specifically under Geometry? Theres a few options there that might "fix" it. $\endgroup$
    – Jakemoyo
    Commented Jul 8 at 13:22
  • $\begingroup$ I know in Unreal it also throws a similar error about "Normals can't be calculated" or something but I haven't ever noticed an actual issue or had the problem stop the import entirely. It's just like a warning that pops up but never seems to affect much. Is it actually breaking the import entirely or just throwing a warning on import? $\endgroup$
    – Jakemoyo
    Commented Jul 8 at 13:23
  • $\begingroup$ @GordonBrinkmann, "Shade Smooth" does import from Blender to Unity and does as directed. The issue doesn't appear to be the flag itself so much as something about the data in the normals due to said flag (i.e. Unity chokes on the normals, but correctly recalculates using the 'Shade Smooth' option). $\endgroup$ Commented Jul 9 at 22:49
  • $\begingroup$ @Jakemoyo, good callout -- I tried all options under 'smoothing'; tried triangulate faces; all no effect. I didn't try the 'Vertex Colors' but let me know if you think that is relevant. As with UR, it is showing an error on import, but Unity's recalc seems to recover fine, but I'd like to know it's 100% right -- in my experience as a software engineer, errors tend to mean something isn't working, even if you don't see it immediately. Hopefully someone at Unity or Blender can help fix the error. $\endgroup$ Commented Jul 9 at 22:50

0

You must log in to answer this question.

Browse other questions tagged .