Home Technical Talk

3DS Max's Chamfer's "Smooth to Adjacent" gives perfect face weighted normals but doesn't export

polycounter lvl 6
Offline / Send Message
godejon polycounter lvl 6
Enabling "Smooth to Adjacent" in 3DS Max 2016's Chamfer modifier gives you perfect face weighted normals (1), however, adding any modifier on top or exporting to fbx breaks it and smooths only the chamfers (2). Collapsing the stack smooths the whole object (3).

Has anyone found a solution for this? Using a plugin is fine but this allows you to selectively chamfer edges and handles hard edges without any extra work.


Replies

  • Swordslayer
    Options
    Offline / Send Message
    Swordslayer interpolator
    Most of that seems fixed in later versions (only tested 2018 though), for example edit normals definitely keeps the normals unlike your 2nd pic, and collapsing works without issues:



  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Yes, I'm not sure why this is. I've always just used this 1-click script for perfect and exportable FWVN: https://github.com/ByteHazard/wnormals

    I just tested this on 2018.1 and am having the same problems. Collapse to editable poly is fine, and maintains the normals. However, if I add an edit poly/edit normals/turn to poly/etc, the normals break. If I export to .fbx all the normals automatically average themselves to 1 smoothing group as soon as the file saves? The normals are definitely not being baked. It is strange indeed.

    Edit: imported to S Painter. Normals not preserved.

  • godejon
    Options
    Offline / Send Message
    godejon polycounter lvl 6
    Forgot to mention I'm on 2016!
    Swordslayer 
    Thanks for testing in 2018. That's a solution I'll consider.

    musashidan
    Thanks for the link. I actually currently use the same script ^.^ I only have to do a little extra work if I want some edges flat (for optimization purposes) and untouched by the script because I can't always get the chamfer modifier to do the smoothing groups correctly. Interesting that adding an edit normal modifier gives you different results than Swordslayer.

    This feature is so close to working, it's very frustrating! I'll keep on with ByteHazard's script.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Yes, I'm going to keep testing as I'm sure it should work as we expect. I'll raise it on the beta forums. One of the devs there might have an idea.
  • thomasp
    Options
    Offline / Send Message
    thomasp hero character
    how about creating a copy of the object, flatten the stack of that and using one of those vertex normal thief scripts to transfer the 'good' normals over?

    there was a really speedy script for that popular here on the forums. it's been a while with max for me but this might have been called 'noors normal thief'.

  • godejon
    Options
    Offline / Send Message
    godejon polycounter lvl 6
    musashidan 
    Great, hopefully it's a simple bug.

    thomasp 
    That's a good idea but noors doesn't seem to get the correct normals, it transfers fully smoothed normals (as if I had collapsed the source object). Thanks!
  • Tom Widdowson
    Options
    Offline / Send Message
    Tom Widdowson polycounter lvl 3
    I have just come across this issue does anyone know a quick fix?? maybe an export checkbox? It seems to work fine exporting as a .obj :S 
  • Noors
    Options
    Offline / Send Message
    Noors greentooth
    I dont get how those normals are stored, atleast on 2016.
    I didn't find a way to access the correct values through maxscript. I can only get the "default" normals, those you get if you add a modifier or whatever.

    But as it somehow exports correctly as .obj, a dirty workaround is to export/import.
    On the imported object, you can apply an edit normals modifier and copy/paste it over the stack of your original object.

    And it seems to be fixed on later versions so...

Sign In or Register to comment.