Search Unity

Unity3D Blender models import issue

Discussion in 'Asset Importing & Exporting' started by RyderP, Jan 16, 2019.

  1. RyderP

    RyderP

    Joined:
    Feb 4, 2016
    Posts:
    32
    I am trying to make a small game with a rotating platform, a capsule as a player, and the goal is to reach a coin at a high location via jumping on platforms.

    My problem is that all the models that I create in Blender have missing faces when I import them into Unity. This seems like a common issue and the solution is to check the "Backface Culling" option to see the missing faces, type Ctrl + N to recalculate the normals, and to flip the normals if that does not work, but it just hasn't been working for me. If I flip the normals, I'll have more missing faces than I had before, and I've tried to create another set of faces to make it appear double-sided, but those faces will sometimes be missing to. The inset faces option doesn't work, and the Make edge/face option doesn't work as well. Attached are images of the model before calculating normals, after calculating normals, and the imported Blender model inside Unity.

    Tried to upload my .blend file but it is a disallowed file extension.

    Thanks!
     

    Attached Files:

  2. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,639
    "flip normals" on the whole model doesn't work because some of your normals are already correct. If you flip all the normals then that corrects the bad normals, but also flips all your good normals (making them wrong).

    "recalculate normals" can't always figure out what you a want. Sometimes you just have to fix them manually.

    In blender:
    https://docs.blender.org/manual/en/latest/modeling/meshes/mesh_display.html#mesh-display-normals

    use that so that you can see the face normals in Blender. Select only the faces where the normals are pointing the wrong direction and flip those normals.
     
  3. RyderP

    RyderP

    Joined:
    Feb 4, 2016
    Posts:
    32
    Thanks for the response. I tried that, but when I flip the wrong faces they will appear fine when I look at them in the inside of the platform, but they will be invisible from the outside.
     
  4. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,639
    Unity's shaders only support a single-sided rendering. Each face can only be seen at one side or the other. If you want a face to be visible from both sides, then you need two faces (each facing opposite directions).

    A quick way to this in blender would be duplicating your object in "object mode". then "flip normals" on your duplicate (all of the faces). Then join your original object and your duplicate object into a single object. That way, you'll have a copy of each face with their normals pointing in both directions.
     
  5. RyderP

    RyderP

    Joined:
    Feb 4, 2016
    Posts:
    32
    That did the trick. Thanks! Is that a common occurrence in large games? That seems like a lot of faces that would have to be rendered with duplicate objects in one model like that.
     
  6. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,639
    For a vast majority of objects in games, the player can only see the outside of them, so it's not necessary to render the inside. For things like buildings, where you can go inside, often times the inside and outside of the building are completely separate sets of objects.