Is there a script or anyway to re-calculate a figures normals?



  • @trepleen And checking normals BEFORE you export them from GoZ is not an option because... ????


  • Poser Ambassadors

    @trepleen I use GoZ all the time and never have this problem. Do you select By Material or Bodypart when sending it to zbrush?


  • Banned

    @Ghostman said in Is there a script or anyway to re-calculate a figures normals?:

    @trepleen I use GoZ all the time and never have this problem. Do you select By Material or Bodypart when sending it to zbrush?

    Body part. Should I be exporting as material?

    I do A LOT of morphing and in many cases the changes I make have drastically changed the figure.

    The problem rarely happens for me, but it happens enough where it's annoying. It'd be nice to have a solution to re-calculate the normals.


  • Poser Ambassadors

    Actually Poser apply its own normal map when importing an OBJ into Poser. Even if the model has a normal map or not. So perfecting a normal map in a external modeling program is really a waste of time.


  • Poser Ambassadors

    @trepleen I always do it with Material. Everything is welded as well with this option. ;)



  • Hmm... I see what you're saying. That's actually a good point.

    You're talking about Vertex Normals, not Face Normals. A Vertex Normal is a true vector (used for shading), so it has direction and strength, while a Face Normal is just a vertex order (used to determine visibility of the triangle).

    The operation that 3DS Max calls Unify takes just makes vertex normals the same for vertices in same positions. That way the objects will have similar smoothing even if the vertices are split.

    The Poser GUI doesn't give any methods for calculating Vertex Normals, only Face Normals. The API doesn't give any methods either; there's a single read-only method to get the list of vertex normals (called Geometry.Normals()), but no methods to manipulate them. When you create an object in the API you don't specify any vertex normals.

    So it may be that Poser doesns't keep vertex normals internally, but calculates them on the fly (there's an algorithm for that). If so then such request would be impossible to fufill.

    But I have noticed the artifact you referred to in several figures, when the skin seems to have seams between body parts at some extreme morphing or bending angles. That's probably due to the vertex normals getting slightly different at the seams between different body parts. So it may be useful to request SM to create an option to as you say "unify" the vertex normals (that is, realign them), like say a checkbox for the figure. That might help rendering quality at high morphing or extreme - at very least would get rid of these irritating seam lines in the skin.


  • Banned

    @Batman said in Is there a script or anyway to re-calculate a figures normals?:

    Actually Poser apply its own normal map when importing an OBJ into Poser. Even if the model has a normal map or not. So perfecting a normal map in a external modeling program is really a waste of time.

    I wasn't creating a normal map. I was just moving around geometry to make the character look different for the face & body.

    @Ghostman said in Is there a script or anyway to re-calculate a figures normals?:

    @trepleen I always do it with Material. Everything is welded as well with this option. ;)

    I'm going to start doing it by material only and see if this makes the problem not even happen in the first place.

    But I have noticed the artifact you referred to in several figures, when the skin seems to have seams between body parts at some extreme morphing or bending angles. That's probably due to the vertex normals getting slightly different at the seams between different body parts. So it may be useful to request SM to create an option to as you say "unify" the vertex normals (that is, realign them), like say a checkbox for the figure. That might help rendering quality at high morphing or extreme - at very least would get rid of these irritating seam lines in the skin.

    That would be great. Fortunately doing Figure ---> Skinning Method ---> Poser UniMesh will unify the the vertex normals for now, thank goodness.

    You have a very thorough explanation! Very good for clarity on this issue.


  • Banned

    This post is deleted!

  • Poser Ambassadors

    @trepleen - if you're making extreme morphs, my suggestion would be to use subdivision levels. When you add a level of subD new topology is created (Poser uses Pixar's OpenSubDiv) - that is, new geometry & therefore normals as well.

    So create an extreme morph, then add a level of subD in Poser, then if necessary pass that subD mesh via GoZ to Zbrush & add more detail & refinement. Then take that level, add another to add even more detail & so on - you could go as high-res as your machine can stand. Poser also gives you the option to tie a morph to a particular subD level or bake it all the way down the chain to the base mesh.

    I say, f**k the normals, the best way to get high quality morphs is use more geo ;)

    As an aside, I would like Poser to support vertex normals, maybe through FBX, as a means of getting edge weighting via Pixar's semi-sharp creasing. That would be useful for hard-surface props though rather than organics.



  • @caisson said in Is there a script or anyway to re-calculate a figures normals?:

    @trepleen - if you're making extreme morphs, my suggestion would be to use subdivision levels. When you add a level of subD new topology is created (Poser uses Pixar's OpenSubDiv) - that is, new geometry & therefore normals as well.

    So create an extreme morph, then add a level of subD in Poser, then if necessary pass that subD mesh via GoZ to Zbrush & add more detail & refinement. Then take that level, add another to add even more detail & so on - you could go as high-res as your machine can stand. Poser also gives you the option to tie a morph to a particular subD level or bake it all the way down the chain to the base mesh.

    I say, f**k the normals, the best way to get high quality morphs is use more geo ;)

    As an aside, I would like Poser to support vertex normals, maybe through FBX, as a means of getting edge weighting via Pixar's semi-sharp creasing. That would be useful for hard-surface props though rather than organics.

    That's a good thought. I never seriously considered subD because they kill my playback rate, but I added magnets to several figures, and they tend to create artifacts at the seams. I never considered that to be related to vertex normals, but based on trepleen's input I think that's a real possibility.

    I understand a unimesh has no body seams, so that should be really helpful for figures that have magnets on different multiple body parts.