Home Technical Talk

Vertex Normal Splits

polycounter lvl 11
Offline / Send Message
leechdemon polycounter lvl 11
First, check out my example of what I'm talking about with "Vertex Normal Splits", in case I'm calling this the wrong thing:

vertexnormals.jpg


Sphere #1 on the left was converted to a poly, and detached to elements on the top/bottom hemispheres. Sphere #2 has Edit Normals thrown on to show the vertex normals being split along their edges. Sphere #3 has Edit Normals as well, and had it's normals Averaged with a threshold.

This seems to be the default behavior in Max. Using Edit Normals allows me to fix this in a lot of cases, and while a pain, it works.... unless I have smoothing groups:

vertexnormals2.jpg


Same issue here; Sidewalk #1 is broken into two pieces, Sidewalk #2 shows the normals, Sidewalk #3 is Averaged with a threshold. The obvious problem is that Averaging destroys the existing Smoothing groups. This seems like a really counter intuitive default behavior, and I can't seem to avoid it. The only thing I can do is break the smoothing groups into pieces, offset their position, average, then undo the offsets. This is a huge amount of work for what should really just be "detach, preserve normals".

Am I doing something the hard way? Did someone write a tool or script to fix this that I don't know of? Or is this something that's just dumb in Max, and Maya or whatever handles this better? I'm making it work for small models, but I'm trying to sort this out for a 25 mile road scene, and it's literally impossible to do this piece by piece. What am I doing wrong?

Replies

  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
    That is a lot of text to parse in order to figure out what the question is. Can you restate the question in a simpler way?
  • leechdemon
    Options
    Offline / Send Message
    leechdemon polycounter lvl 11
    What is the best way to split an object with smoothing groups into two objects, while still preserving the normals? Edit Normals helps with single smoothing grouped objects, but averaging destroys smoothing groups.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    I think he's asking for modular normals, like say creating a character for an MMO game with all the modular faces, hands and bodies, without the breaking in the normals so the player won't see the seam.

    And yeah, +1 to the request, so far I had to edit manually my weights here and there, would like to know a streamlined process too.

    EDIT: Oops, didn't see the second post, hehe...
  • Noors
    Options
    Offline / Send Message
    Noors greentooth
    Seems to me it's the normal behaviour since you are selecting all the normals. You must not select the splitted normals resulting from the smoothing groups.
    Explicit normals (green) override the smoothing groups. You have to hit reset so they go back to a "standard" state (blue)

    Imo the weakness of max (here), is, when using the detach function, explicit normals should be preserved. What you can do is :
    On your complete object, make all your normals explicit. Collapse.
    Duplicate the object, delete one part on one object.
    Delete the other part on the other object.
    Bit tedious i agree though probably scriptable.
  • bugo
    Options
    Offline / Send Message
    bugo polycounter lvl 17
    in MAYA - lock normals an then extract, done

    OR select both meshes and average normals.

    OR by transfer attributes u can also hold the normals of mesh Y constrained to the one in X

    MAX always had a hard time with vertex normals.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
  • Noors
    Options
    Offline / Send Message
    Noors greentooth
    Sorry but what is the problem with what i said ? They are basically saying the same thing in those threads. It works and renders correctly (in max 2012 atleast)
    vertex_normals.jpg
  • leechdemon
    Options
    Offline / Send Message
    leechdemon polycounter lvl 11
    @Noors - That is retarded; you're right, Setting to explicit and deleting (vs detaching) works perfect. That's pretty easily scriptable, too. Thanks!

    @Ace - I wrote a script to handle this. It's not foolproof, but it's working for me... you have to be in sub-object mode (just like if you were to detach), and it seems to only work if your mesh is collapsed. But feel free to edit it as you like!
    undo on
    (
    OldSelection = $
    subobjectLevel = 0
    modPanel.addModToSelection (Edit_Normals ()) ui:on
    actionMan.executeAction 0 "40021" -- Selection: Select All
    $.modifiers[#Edit_Normals].EditNormalsMod.MakeExplicit ()
    macros.run "Modifier Stack" "Convert_to_Mesh"
    DetachedObject = copy $
    DetachedObject.name = "DetachedObject"
    select DetachedObject
    subobjectLevel = 4
    actionMan.executeAction 0 "40044" -- Selection: Select Invert
    actionMan.executeAction 0 "40020" -- Edit: Delete Objects
    subobjectLevel = 0
    Select OldSelection
    subobjectLevel = 4
    actionMan.executeAction 0 "40020" -- Edit: Delete Objects
    )
    Thanks again!
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Wait, I though that no matter what, upon export, you lose all your information from Max and any edit poly recalculates the normals, or was I wrong (which is why it looks counter-intuitive to me).
  • leechdemon
    Options
    Offline / Send Message
    leechdemon polycounter lvl 11
    I'm testing it in our object viewer at work, and Edit Normals seems to be preserved through the exporter. In other words, when I test it, it looks like I'd expect.

    Edit Mesh, Editable Mesh, and Editable Poly all respect Edit Normals. Edit Poly, specifically, seems to reset them. I'm splitting my mesh as part of my export process, so this shouldn't matter too much. As a rule, I tend to avoid Edit Poly anyways... it has slightly different behavior from Editable Poly, and tends to freak me out.

    Ace - Is that script (or doing it manually) not working for you?
  • Noors
    Options
    Offline / Send Message
    Noors greentooth
    Well then it depends of your exporter and is not related to max.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    leechdemon wrote: »
    Edit Poly, specifically, seems to reset them. I'm splitting my mesh as part of my export process, so this shouldn't matter too much.

    Ah, OK, that's makes sense then, I was using Edit Poly all the time. Oops :poly136:

    Cheers, it works now.
  • Computron
    Options
    Offline / Send Message
    Computron polycounter lvl 7
    HOLY SHIT Leech. Get out of my head.

    A couple days back I was seriously doing the exact same shit as you with a curb, trying to edit normals, converting to edit poly (losing my normals in the process, thanks for the "Editable Tip" but I wish I wouldn't have to collapse my stack.) and trying to do splits while preserving normals. I had sooo many of the same problems as you and google was no help until I discover this thread today where you are practically reliving my life. WTF.

    I didn't bother to post either since I was trying to work it out on my own with the manual.


    must be a sign. :poly141::poly142:

    The reason why I was doing this is because in BF3 some of the buildings corner edges have these bent normals but no chamfer and I was wondering how they do that with their tiling texture, trying to recreate the effect.
  • rasmus
    Options
    Offline / Send Message
    There's also this thread http://www.polycount.com/forum/showthread.php?t=75753, which resulted in a script by the lovely SyncView that lets you align vertex normals to face normals on a per-face basis. Automatically collapses the stack and is reset by an Edit Poly.
Sign In or Register to comment.