Home Technical Talk

A short explanation about custom vertex normals (tutorial)

1235

Replies

  • OneMoreShepard
    Offline / Send Message
    OneMoreShepard polycounter lvl 4
    So basically it's "soften edges" in Maya? Or am I missing something?
  • shogunato
    Offline / Send Message
    shogunato polycounter lvl 12
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    So basically it's "soften edges" in Maya? Or am I missing something?
    You are not the first one who asks this and I guess not the last. Maybe don't skip the OP, it tells you everything that you need to know to understand whats this...To straight answer to your question, its not that, however, in the newer versions of Maya, its somewhat better than in the rest of the softwares. But even that is still very far from properly weighted normals, you still get some rounded shading on flat surfaces, where its not supposed to happen, when you have face weighted normals.

    Left, Maya soften edges, slightly bent normals---------------------------Right, Maya soften edges+face weighted normals script, perfectly perpendicular normals

  • LucasJohansson
    Offline / Send Message
    LucasJohansson polycounter lvl 4
    Thanks for the Maya script Mannyn.
    (Currently found on bottom of page 3)

    Tested on simple boxes:

    Edit: Normals look like they do on Obscuras post above mine 
  • Amiminoru
    Offline / Send Message
    Amiminoru polycounter lvl 8
    You do not need scripts. It works really simply  :D

    https://www.youtube.com/watch?v=-tKseEZFRa8
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Amiminoru said:
    You do not need scripts. It works really simply  :D

    https://www.youtube.com/watch?v=-tKseEZFRa8
    This is only in Maya.
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    Amiminoru said:
    You do not need scripts. It works really simply  :D


    What's the best way to do same in 3ds max currently?

  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    gnoop said:
    Amiminoru said:
    You do not need scripts. It works really simply  :D


    What's the best way to do same in 3ds max currently?

    Scripts. You can find them in this thread and the polycount wiki.
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    thanks,   I just try to figure out same simple way in Max.   I usually  do it the way  I always did in Blender,  by putting rounded chamfer modifier with enough tessellation. That way the vertex normals  next to object sides are always perpendicular to surface.  Then I do normal "theft" to a copy of a model with chamfers set flat.  

    Would the other Max scripts do it quicker?

  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    It diesn't really work like that in Max. Sorry but you should bother reading the first few pages even though its long, but itll give you all what you want. Don't listen to the first few posts, it can be misleading, but there are some nice suggestions by Joost, and I think it was maybe Moster on like the 2th 3th page- Basically there are 2 scripts that does nice job, one is more manual, but it does give perfect result on any kind of a surface, it could be soft surface or hard or whatever - though you may want a different workflow for full med poly hard surface.

    So first one that I prefer, it works in every case if you have decent enough topology and amount of geo:

    "http://www.polycount.com/forum/showpost.php?p=1199836&postcount=41 This one is fully manual. Slower results but much cleaner."

    I'd say use this if you are going for perfect result regardless of the shape and taken time...

    And there is this another, also suggested by Musashidan:
    http://polycount.com/discussion/182209/face-weighted-vertex-normals-vid-tut-for-beginners#latest

    I have tested the most of the stuff from this thread and the another, that is related, the one that talks about the mesh decals and stuff; in production and in my personal projects, and I can still tell you the same, if you want quality in all cases, you may want the first one. If you want automated method that gives the Maya result that is like mostly good, depending on the shape, then the second one.

    As a last note, "support loops rulez" :)

    Really, depending on the shape, you may just want to put enough geometry...
  • Niknesh
    Offline / Send Message
    Niknesh polycounter lvl 11
    Amiminoru said:
    You do not need scripts. It works really simply  :D

    https://www.youtube.com/watch?v=-tKseEZFRa8
    Is this only in Maya 2017 or...?

    Because i tried the very same thing in 2016 ext 2 and i don't get your result at all. It's even worse than regular soften (which is on the right).
    Here is the pic:


  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Niknesh  Yeah that technique only works in 2016 Extension 3 and 2017. I've made a tool to fix this workflow in 2016, and it's free :)

    https://gumroad.com/l/MayaFWVN



  • Niknesh
    Offline / Send Message
    Niknesh polycounter lvl 11
    Oh yeah man, your tool is awesome and I am using it, along with your other scripts :smiley:

    But this is bugging me because I tried this thing in the video so many times before, and never had that result. Now I tried on friends computer who has 2017 version (update 2 though, not update 3) and it doesn't work, same result again as in 2016. Maybe it's possible in update 3 dunno. Would be nice to know that info.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Just to make sure you're following the correct steps, here they are :

    - Apply a bevel on your mesh.
    - Set the mitering of the bevel to None.
    - Select the object and apply Set To Face (in the Mesh Display menu)  with the option set to Match Face Normal (it is on Unlock Face Vertex Normals by default).
    - Apply a soften edge on the object.
    -Done ?

    Alternatively, I''ve compacted this set of commands into one small script, this one just needs you to apply the bevel. It'll do the rest :

    string $CurrentShape[] = `ls -sl -dag -o -fl -lf`;<br><br>string $OBJSel[] = stringArrayRemoveDuplicates(`listRelatives -p -path $CurrentShape`);<br><br>string $GetBevel[] = stringArrayRemoveDuplicates(`listConnections -scn true -d true <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -t "polyBevel3" -et true $CurrentShape[0]`);<br><br>setAttr ($GetBevel[0] + ".mitering") 4;<br><br>polySetToFaceNormal -setUserNormal;<br><br>polySoftEdge -a 180;<br><br>select $OBJSel;


  • Niknesh
    Offline / Send Message
    Niknesh polycounter lvl 11
    Wow, thanks man!

    I followed your steps and realized that it was the mitering type set to "none" that made the desired effect. Mine was unchanged (auto), that's why it did not work.

    I also tested this with an object that had bevel history and one where I deleted the that history node. In both cases, if mitering type was set to "none", weighted normal's ended up proper. If it was anything besides that setting, it did not work.

    How Maya recognizes what type of mitering object had without it's history node is interesting. I guess it saves it into object in some way.
  • MmAaXx
    Offline / Send Message
    MmAaXx polycounter lvl 10
    someone probably already mentioned it, but y.a.v.n.e. is the best addon to manage vertex normal so far (in blender)

    https://blenderartists.org/forum/showthread.php?393179-Addon-Yet-Another-Vertex-Normal-Editor-(Y-A-V-N-E-)



  • EYSSIX
    Offline / Send Message
    EYSSIX polycounter lvl 3
    So I'm attempting this utilizing weighted normals within Blender. I've run across a use case that I'm having some difficulty working around.
    Essentially the issue is construction of a modular level kit where the outer edges of the mesh need to be sharp. However when implementing weighted face normals if the outer edges are not beveled (even if its only a very very tiny amount) the rest of the surrounding faces received incorrect shading. Help would be much appreciated if any of you have suggestions! 

    Here is an example of what I mean: http://i.imgur.com/mmjNDBP.jpg

    Thank you!!
  • scgstudio
    Offline / Send Message
    scgstudio polycounter lvl 5
    Sorry for 'grave digging' but I'm looking for different topicks related to FWN and see that a lot of people still have problems with mid poly shading 'management'. So I would like to present this :smile:  :


    I was able to achieve such results in 3ds Max 2012.
    Not a modifier, but using script. It turns out to be very difficult to make a proper pipeline inside of max to create a stable and predictable results in this matter. And making a one button solution is not possible when you have to deal with something more complex than box and few chamfers. Now, having this tool I think it is possible to get really nice results in a very comfortable way.
    https://polycount.com/discussion/206583/vertex-normal-toolkit-for-3ds-max/p1?new=1
  • scgstudio
    Offline / Send Message
    scgstudio polycounter lvl 5
    Sorry for 'grave digging' but I'm looking for different topicks related to FWN and see that a lot of people still have problems with mid poly shading 'management'. So I would like to present this :smile:  :


    I was able to achieve such results in 3ds Max 2012.
    Not a modifier, but using script. It turns out to be very difficult to make a proper pipeline inside of max to create a stable and predictable results in this matter. And making a one button solution is not possible when you have to deal with something more complex than box and few chamfers. Now, having this tool I think it is possible to get really nice results in a very comfortable way.
    https://polycount.com/discussion/206583/vertex-normal-toolkit-for-3ds-max/p1?new=1
  • royor
    Offline / Send Message
    royor node
    for anyone using Maya or forgot here is a sample image of how to automate your vertex normal.

    @Obscura thank you for this knowledge I learned again!!!.





1235
Sign In or Register to comment.