Normals in Blender

Discussion in 'Software and Applications' started by dskloet, Aug 10, 2010.

  1. dskloet
    dskloet New Member

    I'm a total noob with 3D modeling and just starting using blender. I drew a curve and increased the Extrude value to make it 3D. Then I converted the object type to a mesh and thought I had something I could use.

    But after uploading failed I found out that the bottom normals as well as the top normals are all facing upwards. This means the bottom ones are facing inside and the top ones are facing outside. And on upload this generates a windingcheck error. Recalculating normals doesn't seem to solve this. Can anyone help me to get all normals to face inwards so I don't fail the windingcheck?

  2. clsn
    clsn Well-Known Member
    Recalculating normals usually does it. Are you sure you selected all the faces before doing it? Use "a" to select all the faces (in edit mode) and Ctrl-N to recalculate all the normals to the outside.

    You can also use "Show Normals" so you can *see* where the normals are pointing and work with them one at a time if you have to.
  3. LincolnK
    LincolnK New Member
    You could also try using NetFabb or MeshLab to fix it.

    If you haven't heard of them, they are free programs that can fix your stl, and even measure wall thickness and convert between different formats.
  4. dskloet
    dskloet New Member
    Thanks a lot guys!
    I selected all the faces and I enabled showing the normals but I think I know what's wrong with blender. It appears that when you do "Recalculate inside", it directs all normals towards the origin. Since my model isn't convex this will never work.

    I downloaded MeshLab as suggested. This was very useful and I was able to put all normals in the correct direction. But now when I upload, Shapeways still can't process my model but now the email doesn't even tell me what's wrong with it.

    I tried selecting all non-manifold vertices as suggested in the tutorial but it seems to select the entire model. Any idea why my entire model would be non-manifold?

    I uploaded the model here if anyone cares to have a look:

    Thanks for the help so far!
  5. Tommy_2Tall
    Tommy_2Tall New Member


    First I'd like to say that Recalculate Inside/Outside has been working perfectly for me, with rather complex shapes.. and it's not just pointing them towards origo (0,0,0), it actually makes sense, even with escapeholes and struts and beams and stuff like that.

    If you select all non-manifold edges in Blender and it selects everything I think it miiiight be a case of duplicate vertices or ripped (not connected) polygons.
    If you select one single polygon and move it around, do the surronding polygons stick to it?

    If not, there are duplicate vertices involved.
    Try selecting everything and use the "Remove doubles" function (I think it shows up in the popup you get by pressing W).
    That should show a small dialog that says "Removed ... vertices" if it was succesful.

    That could also explain why the "Recalculate inside" didn't work since every polygon gets calculated individually since it has no connected "neighbour faces".

  6. clsn
    clsn Well-Known Member
    You definitely need to do Remove Doubles; it removed thousands of vertices when I tried it on the file you gave. More importantly, remember that you want to recalculate the normals *OUTSIDE*, not inside. That is, the normals are supposed to point to wherever the "outside" of the model is.

    After removing doubles, I didn't have any problems with manifoldness, btw.

    Good luck!
  7. arno
    arno New Member

    I checked out your model.

    - The model (stl) you have uploaded seems to be 'inside out', aka all normals should flip? (Mesh Medic will do that for you as well, so no biggie)

    - Thanks for pointing out the email didn't give you much info. We applied a fix, so that the email will tell you what's wrong

    - When testing that fix with your model, it tells me it is too small to print ;)

    This is because the minimum bounding box accepted by the printer is 2.5mm in each direction (so that your model can be found in the sls powder). Your model is only 0.9mm thick.

    Hope this helps, kind regards, Arno
  8. dskloet
    dskloet New Member
    Thanks everybody!
    After removing duplicates and increasing the thickness of the model and uploading my model for the 13th time I finally got the response that it was printable! Not that I actually want to print this model but I learned a lot and now I can finally think about what I actually want to print :).

    Some responses:

    I'm not sure because I had already converted my polygon to a mesh. I could either move a single point or the entire object.
    But when I removed duplicates it removed over 19k vertices. I wonder how they got there since blender created the whole thing itself from a fairly simple curve. Or do you think I accidentally duplicated the entire object or something?

    Thanks a lot for downloading my model and confirming that the duplicates were the issue. Though my model that worked did have the normals on the inside. And the reason I tried normals on the inside was because I read the last post in this topic:

    Is Mesh Medic something I should have run or does it run automatically when I upload? Because as I said, my accepted model was 'inside out' because of the topic I linked above.
    Just before I uploaded the working version, I accidentally uploaded what I think was an 'empty' model. I didn't know I had to select the object before exporting and the file was only 4kB. But again the email didn't say at all what the problem was.
    It does tell me to visit under the header "my errors" but I don't see anything called "my errors" there.
    I would have never guessed that! :) Now I wonder if it will always find the smallest bounding box. Or can I cheat this check just by rotating my model before I submit it?

    Thanks again to everybody!